kafka controller和partition leade

2020-04-08  本文已影响0人  LB_15b3

controller 选举 入口:ZookeeperLeaderElector

  1. broker 启动后,监控临时节点/controller
  2. 获取/controller 节点内容
    1. 如果内容为空,就创建节点,并写入数据
    2. 如果不为空说明已经选举好了
  3. 当controller 节点(controller 的broker 挂掉,zk 超时等)丢失,其他broker尝试写入临时节点,写成功就算选举成功。

partition leader选举 入口:OfflinePartitionLeaderSelector

  1. 当broker 挂掉,获取其他isr
  2. 如果isr 不为空 则选取第一isr
  3. 如果isr为空 并且unclean.leader.election.enable:false throw new NoReplicaOnlineException
    4 如果isr为空unclean.leader.election.enable:true。sr中取第一个。如果is 也为空 throw new NoReplicaOnlineException
上一篇下一篇

猜你喜欢

热点阅读