zookeeper 的选举机制

背景:
集群中超过半数节点选举, 则成为 leader, 其他为 follower
新加入节点会重新发起选举
节点总是优先选举自己, 选举失败后, 选举比自己 id 大的节点
leader 选举出来后, 服从多数原则, 新加入的都是 follower

这里举例一共 5 个 zk 节点. myid 1 2 3 4 5
节点 1 启动, 发起选举
节点 1 投票给自己
投票数 1 没有超过半数节点 ( 2.5 个), 选举失败, 当前是 looking 状态

节点 2 启动, 发起选举
节点 2 投票给自己
节点 1 发现节点 2 id 大, 投票给节点 2
节点 2 总票数 2, 投票数没有超过半数节点 ( 2.5 个), 选举失败, 节点 1 2 当前是 looking 状态

节点 3 启动, 发起选举
节点 3 投票给自己
节点 1 2 发现节点 3 id 大, 投票给节点 3
节点 3 总票数 3, 投票数超过半数节点 ( 2.5 个), 选举成功
节点 3 成为 leader, 是 leading 状态,节点 1 2 由 looking 状态变为 following 状态

节点 4 启动, 发起选举
节点 4 投票给自己
节点 1 2 是 following 状态, 不修改投票信息, 仍然投给 3
此时节点 3 票数 3, 节点 4 服从多数, 投票给节点 3,节点 4 修改为 following 状态

节点 5 启动, 发起选举
同理 节点4, 不影响之前的 leader 投票数, 节点 5 服从多数, 投票给节点 3

节点全部启动完毕, 选举结束

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值