kafka中leader挂掉后重新选举leader过程简介

新leader的选举是由controller来监控管理。
当旧leader挂掉后,controller在zk中的监视器将消息发送给controller,controller开始执行新leader的选举工作。
1.首先确认挂掉的节点上有哪些分区,然后到相应的路径中获得分区所对应的已经同步的副本分区(ISR),在controller监控下,多个已经同步的副本分区同时竞争leader。竞争过程:原先的leader节点挂掉后在zk中被注销了,其他follow同时在zk中重新创建该节点,谁先成功了创建了,谁就是leader。当然大伙儿疑惑了,如果多个follow都创建成功呢?不存在的,zk只认一个作为创建成功的节点。这样的优点是新leader的数据和挂掉的分区数据一致,不存在丢失。
(实际过程可看成为
kafka集群刚启动时leader的选举也是类似机制。)
2-1.如果已经同步副本分区中没有相应的分区,可以等待一定时间,等待分区复活。
2-2.如果已经同步副本分区中没有相应的分区,也可以不等待,退而求其次,在ISR外,在存活的副本分区中找一个作为新leader。由于存活的副本分区不属于已经同步副本分区,所以数据和原先的leader相比有缺失。
3.如果ISR和非同步分区数据副本分区都挂了,那么将新leader设置为-1.

参考:leader的选举:https://www.jianshu.com/p/c987b5e055b0

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值