kafka controller和partition leade
2020-04-08 本文已影响0人
LB_15b3
controller 选举 入口:ZookeeperLeaderElector
- broker 启动后,监控临时节点/controller
- 获取/controller 节点内容
- 如果内容为空,就创建节点,并写入数据
- 如果不为空说明已经选举好了
- 当controller 节点(controller 的broker 挂掉,zk 超时等)丢失,其他broker尝试写入临时节点,写成功就算选举成功。
partition leader选举 入口:OfflinePartitionLeaderSelector
- 当broker 挂掉,获取其他isr
- 如果isr 不为空 则选取第一isr
- 如果isr为空 并且unclean.leader.election.enable:false throw new NoReplicaOnlineException
4 如果isr为空unclean.leader.election.enable:true。sr中取第一个。如果is 也为空 throw new NoReplicaOnlineException