zookeeper的ZAB协议-崩溃恢复与消息广播模式

参考从《paxos到zookeeper分布式一致性原理与实现》

书中介绍过,zookeeper所使用的一致性协议与paxos一致性协议还有所不同,paxos一致性协议在未弄懂之前理解与实现比都较复杂,具体可以参考相关资料,这里不并叙述。

ZAB协议包括两种基本模式,崩溃恢复,消息广播

崩溃恢复模式,当一台leader服务器崩溃了之后,ZAB协议就会进入崩溃恢复模式,在所有的follower服务器中选举一台为leader,当选举了新的leader后,集群中有半数与新的leader完成状态同步后就会退出恢复模式,所谓的状态同步就是数据同步,用来保证过半的follower能与leader保持数据一致,当过半的follower集群与leader数据保持一致了,那么接下来就进行到消息广播模式。

消息广播模式,ZAB协议消息广播过程使用的是一个原子广播协议,类似于一个二阶段提交,但是又有所不同,并非所有follower节点都返回ack才进行一致性事物完成,而是只需要半数以上即可具体一个事物广播流程如下:

      客户端轮询zokeeper集群中各个节点,当轮询到一台是follower,如果是读的请求,follower会返回请求结果,如果是增加修改删除操作,follower会像leader生成事物请求,针对客户端的事物请求,leader会为其生成对应的事物Proposal,然后发送给集群中所有follower服务器,然后分别在收集各自的选票,最后进行事物提交,ZAB协议的二阶段提交过程中移除了了中断提交过程,对zookeeper集群来说,超过半数反馈ack就代表事物成功,这种方式无法完成所有节点事物一致问题,所以ZAB协议采用了崩溃恢复模式来解决数据不一致的问题。另外整个消息广播协议是基于具有FIFO特性的TCP协议进行通讯的,因此能够很容易的保证消息广播过程中的消息接收与发送的顺序性,消息广播模式流程示意图如下:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值