zookeeper选举机制

本文详细解析了Zookeeper集群初次启动的领导者选举过程,以及在节点故障后的恢复策略,包括Looking状态转移、ID比较和数据新旧判断。同时涵盖了Follower故障与Leader故障时的选举流程。
摘要由CSDN通过智能技术生成

zookeeper集群搭建启动之后会有选举机制,选出leader,剩下为Follower。

根据启动情况分为两种:

1)第一次启动(每次群起集群)

每个Znode都会有一张选票,当选票超过集群总量的半数以上则成为Leader(Zookeeper只要半数以上存活就可以正常提供服务,数量是由配置文件/conf/zoo.cfg中,添加的服务器集群的配置决定),第一台服务器启动会将选票投给自己,但是票数不够,此时为Looking状态,第二台启动也会将选票投给自己,也会保持Looking状态,然后会通过ID号(zkData文件myid中设置的ID号)进行比较,id号小的会将自己的选票转移到id号大的服务器上,之后通过票数的统计,当超过半数时自动升级为Leader,状态调整成Leading,其余服务器状态为Following,继续启动的服务器自动成为Follower,状态为Following。

2)非第一次启动(每次集群正在工作,由于某个节点出现故障造成)

①一台Follower出现故障恢复后需要重新选举

a.当检测到集群中存在Leader,此Znode则直接成为Follower。

b.当检测到集群中不存在Leader时,则需要重新选举,选举按照以下顺序进行比较,1、Epoch-每个Leader任期代号;2、id-事物id,每次Znode更新时,会将id号加一,所以id号越大,表明此服务器上的数据越新,3、id-服务器id,配置文件myid中设置;按照以上顺序进行比较,如果第一轮数都一样,则进行下一轮比较,直至选出Leader。

②一台Leader出现故障

选举流程参见Follower出现故障恢复后无Leader情况(2-①-b)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值