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