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 选举机制的主要内容,如果未能解决你的问题,请参考以下文章

8.8.ZooKeeper 原理和选举机制

Zookeeper中的选举机制

zookeeper学习03(定义,工作机制,功能,数据结构,应用场景,选举机制)

zookeeper的选举机制

Zookeeper中的选举机制

大数据之Zookeeper:Zookeeper选举机制(面试重点)