Zookeeper选举机制

Zookeeper选举机制

Zk的选举机制,是基于Paxos这个算法来实现,这个算法的核心思想是:
要解决在分布式环境下,就某一个协议达成一致的算法。
zk 用的是fast paxos 算法,相当于做了改进。
Paxos算法容易在分布式环境下产生活锁。

1:数据恢复阶段:
Zookeeper从本次磁盘里找一个最大事务id
事务概念:客户端做新建,跟新等操作属于事务,每个事务会产生一个事务id,并且这个事务id是递增的.
cZXID表示的创建节点的事务id
mZxid表示的修改此节点的事务id
最大的事务id也就意味着最近的事务

2:选举阶段
提交选举议案,议案里包含的内容
1.最大事务id
2.当前机器的领导id(就是myid里的那个数字)
3.逻辑时钟值,记录了当前选举的轮数
作用是确保多个zk处于同一轮选举当中
4.当前节点状态
Looking 表示正处于选举阶段
Leading表示正在任职阶段
Following表示正在做小弟阶段

3:pk原则
第一要比谁的最大事务id大,谁就当领导,如果最大事务id比较不出来,就比领导id,谁大谁就当领导,但是注意:必须满足过半统一原则

当Leader选举出来之后
第一件事要做原子广播,目的是要达到zk服务器集群的数据一致性,因为leader肯定是具有最大事务id,即具有做新数据的.通过原子广播端口进行数据通信,达到数据的一致性.
当zk服务集群收到客户端事务请求时,Leader会对此决议进行表决,当zk服务集群内存过半对此应用成果,则此好事务才真正提交成功.(过半统一机制就是某一个协议达成一致性)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值