Zookeeper 选举机制
Posted alen-apple
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper 选举机制相关的知识,希望对你有一定的参考价值。
选举机制
1.过程
(1)第一阶段:数据恢复阶段。每一个节点(服务器)会寻找当前节点中的最大事务id
(2)第二阶段:选举阶段。刚开始的时候,Zookeeper集群中的每一个节点都会推荐自己当leader,同时每一个节点会把自己节点的选举信息发送给其他的节点,经过比较之后,最后胜出的节点成为leader,其他的节点就成为follower
2.细节
1.选举信息:
a.当前节点的最大事务id - 一般而言是mZxid或者pZxid
b.当前节点的选举编号 - myid
c.逻辑时钟值 - 保证选举在同一轮次上
2.比较原则:
a.先去比较两个节点的最大事务id,谁大谁赢
b.如果事务id一致,那么比较myid,谁大谁赢
3.当一个节点胜过一半的节点的时候,那么这个节点就会成为leader
4.当一个集群汇总已经选举出来一个leader,那么后续添加的节点的事务id以及myid无论多大,这个节点都只能成为follower
5.节点状态:
a.looking/voting - 选举状态
b.follower - 追随者
c.leader - 领导者
d.observer - 观察者
6.在集群中,如果出现了多个leader,这种情况称之为 脑裂
7.在Zookeeper集群中,只有半数以上的节点存活的时候才会进行选举才会对外服务 - 存活的过半 —— 防止闹裂
8.Zookeeer的节点数一般是奇数个 防止脑裂
以上是关于Zookeeper 选举机制的主要内容,如果未能解决你的问题,请参考以下文章