ZAB协议

ZAB协议:是为分布式协调服务Zookeeper专门设计的一种支持崩溃恢复的消息广播协议,实现了分布式数据一致性。
所有的客户端的请求都会写入到Leader进程中,然后由leader进程同步到其他节点,称为Follower。在集群数据同步的过程中,如果出现Follower节点崩溃或者Leader进程崩溃时,需要通过ZAB协议来保证数据一致性。
ZAB协议包括了两种基本的模式:崩溃恢复消息广播

  1. 消息广播
    集群的所有事务请求都是由Leader节点来处理。当Leader收到请求之后,将请求事务转换为事务Proposal,并且将Proposal分发给集群中其他所有Follower。
    完成广播之后,Leader等待Follower的回复。当收到一半以上的Follower回复,Leader将再次向集群中的Follower广播Commit信息。Commit信息就是确认将之前的Proposal提交。
    Leader节点写入是两步的操作,第一步是广播事务操作,第二步是广播提交操作。

  2. 崩溃恢复
    a. 初始化集群,刚刚启动的时候;
    b. Leader服务器出现了故障宕机
    c. Leader服务器与集群中超过半数的节点断联

    此时开启新的一轮选举,选举产生的Leader与过半的Follower进行同步,使数据一致。当同步结束后,退出恢复模式,进入消息广播模式。

整个Zookeeper集群的一致性保证,就是上面两个状态的切换,当Leader服务正常时,就是正常的消息广播模式;当Leader不可用时,就是进入崩溃恢复模式,崩溃恢复模式会进行数据同步,完成以后,重新进入到消息广播模式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值