Kafka中leader选举机制unclean.leader.election.enable作用

1、leader选举机制,就是从副本队列中选择一个副本作为leader。这里需要理解两个概念,一个是副本队列(ISR)这个队列是一个动态队列

  对于这个队列,它的特点是,队列中的follower的offset和leader中offset值是一样的(LEO),也就是完全同步。ISR中包括leader和follower,注意

  这个队列中的内容不能理解为真实副本,因为真实副本是broker。

2、当leader挂掉以后,需要从ISR中选择一个副本出来当leader,但是ISR中不一样有内容,所以就会根据unclean.leader.election.enable的值有

  不同处理办法:值为true的时候,如果ISR中有,我就选择一个,如果没有,我就从OSR队列中选择一个(就是不完全同步的队列);值为false的时候,我必须

  要从ISR中找到一个,如果没有,不好意思,当前服务不可用,一直等,也就是一直等到原来挂掉的leader重启起来,加入ISR中,重新成为leader。

3、说明一点就是,如果是设置的true,那么导致的后果就是数据可能丢失,如果是false,集群可能丢失可用性。这一块感觉有点难理解,看了好几篇博客,加自己理解才整明白。

参考:

https://zhuanlan.zhihu.com/p/65512721

https://segmentfault.com/a/1190000038756474

原文地址:https://www.cnblogs.com/zxg-blog/p/15161649.html