zookeeper选举算法

本文详细讲解了Paxos算法的基本原理、版本和角色,以及其在Zookeeper中的ZAB协议应用,包括活锁问题的解决方案。深入探讨了Zookeeper的选举算法,涉及核心选举原则和集群角色划分,通过实例说明了整个过程。

zookeeper选举算法

paxos算法

学习zookeeper就要先了解一下paxos算法,paxos算法是分布式中保证一致性的一种算法,它可以保证在节点失效、网络分区、网络延迟等情况下各个节点状态的一致性。paxos算法引入了半数原则,也就是少数服从多数的原则。

paxos有三个版本:

  1. Basic Paxos
  2. Multi Paxos
  3. Fast Paxos(ZAB协议就基于Fast Paxos的)

paxos算法中有3种角色:

  1. Proposer:提案者。
  2. Acceptor:决策者,是否接受该提案,如果超过半数的Acceptor接受了此提案,那么此提案才会通过。
  3. Learner:学习者,当提案被确定后,同步执行提案,不参与决策。

Paxos算法的两个阶段

Paxos算法类似于二阶段提交,它们区别于半数原则,其算法执行过程分为两个阶段。

阶段一(prepare阶段):

  1. Proposer选择一个提案编号N,然后向半数以上的Acceptor发送编号为N的Prepare请求。Prepare(N)
  2. 如果一个Acceptor收到一个编号为N的Prepare请求,如果小于它已经响应过的请求,则拒绝,不回应或回复error。若N大于该Acceptor已经响应过的所有Prepare请求的编号(maxN),那么它就会将它已经接受过(已经经过第二阶段accept的提案)的编号最大的提案(如果有的话,如果还没有的accept提案的话返回{pok,null,null})作为响应反馈给Proposer,同时该Acceptor承诺不再接受任何编号小于N的提案。

阶段二(accept阶段):

  1. 如果一个Proposer收到半数以上Acceptor对其发出的编号为N的Pr
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佛祖保佑永不宕机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值