码迷,mamicode.com
首页 > 其他好文 > 详细

Zookeeper 选举机制

时间:2020-06-19 15:39:03      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:server   观察者   发送   汇总   添加   一半   事务   出现   最大   

选举机制

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 选举机制

标签:server   观察者   发送   汇总   添加   一半   事务   出现   最大   

原文地址:https://www.cnblogs.com/alen-apple/p/13163236.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!