码迷,mamicode.com
首页 > 编程语言 > 详细

ZAB协议工作机制与及他与PAXOS算法的区别

时间:2020-03-26 19:59:21      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:zab   zookeeper   工作   进程   构建   最新   strong   高可用   过程   

ZAB主要是用来实现保持各集群中主备副本之间的数据一致性

当 Leader 服务器出现网络中断、崩溃退出与重启等异常情况时,ZAB 协议就会进人恢复模式并选举产生新的Leader服务器。这个过程大致是这样的:

   1. Leader election(选举阶段):节点在一开始都处于选举阶段,只要有一个节点得到超半数节点的票数,它就可以当选准 leader。
   2. Discovery(发现阶段):在这个阶段,followers 跟准 leader 进行通信,同步 followers 最近接收的事务提议。
   3. Synchronization(同步阶段):同步阶段主要是利用 leader 前一阶段获得的最新提议历史,同步集群中所有的副本。同步完成之后 准 leader 才会成为真正的 leader。
   4. Broadcast(广播阶段):到了这个阶段,Zookeeper 集群才能正式对外提供事务服务,并且 leader 可以进行消息广播。同时如果有新的节点加入,还需要对新节点进行同步。
ZAB和PAXOS算法的相同和区别?
  • 相同点:

    • 两者都存在一个类似于Leader进程的角色,由其负责协调多个Follower进程的运行
    • Leader进程都会等待超过半数的Follower做出正确的反馈后,才会将一个提案进行提交
  • 不同点:

    • ZAB协议中,每个Proposal中都包含一个 epoch 值来代表当前的Leader周期,Paxos中名字为Ballot。

    • ZAB用来构建高可用的分布式数据主备系统(Zookeeper),Paxos是用来构建分布式一致性状态机系统。

    • 在Paxos算法中,一个新选举产生的主进程会进行两个阶段的工作。第一阶段被称为读阶段,在这个阶段中,这个新的主进程会通过和所有其他进程进行通信的方式来收集上一个主进程的提案,并将他们提交。第二阶段被称为写阶段,在这个阶段,当前主进程开始提出他自己的提案。

ZAB协议工作机制与及他与PAXOS算法的区别

标签:zab   zookeeper   工作   进程   构建   最新   strong   高可用   过程   

原文地址:https://www.cnblogs.com/lijiahaoAA/p/12576508.html

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