• 全部文章 专栏目录
  • 互动问答
  • 栈栈作者
    2019-08-26 17:22:00
    Zookeeper的ZAB协议与Paxos协议区别

    一、联系

    1. 两者构建的系统都有一个Leader角色,Leader进程负责协调多个Follower进程的运行

    2. Leader进程都会等待超过半数的Follower进程做出正确的分亏后,才会将一个提案进行提交

    3. 在ZAB协议中每个Proposal中都包含一个epoch值,用来代表当前的Leader周期;在Paxos算法中,同样存在这样一个标识(Ballot)

    二、区别

    1. 两者的初衷或者说设计目标不一样

    Paxos算法用于构建一个分布式的一致性状态机系统

    ZAB算法用于构建一个高可用的分布式数据主备系统

    2. 流程上有区别

    Paxos算法,选举出一个新的Leader进程需要进行两个阶段。

    个阶段是读阶段,这个阶段中,这个新的主进程会通过和其他所有其他进程进行通信的方式收集上一个主进程提出的提案,并将它们提交。

    第二个阶段是写阶段,这个阶段中,当前主进程Leader开始提出它自己的提案。

    ZAB算法存在三个阶段:发现阶段、同步阶段、广播阶段,其中发现阶段等同于Paxos的读阶段,广播阶段等同于Paxos的写阶段。

    同步阶段是ZAB算法新添加的,在同步阶段,新的Leader会确保存在过半的Follower已经提交了之前Leader周期中的所有事务Proposal。

    同步阶段的引入,能够有效地保证Leader在新的周期提出事物Proposal之前,所有的进程都已经完成了对之前所有事务的提交。

    推荐大家看一本书《从Paxos到ZooKeeper 分布式一致性原理与实践》,写的很棒,两个协议都交代的很详细。

    1
    0
    ZooKeeper要点分析
    创建时间:2019-08-26 17:20:10
    从协议到应用,一步步讲解zookeeper在大数据系统中的应用,主要是一些要点分析
    展开
    订阅须知

    • 所有用户可根据关注领域订阅专区或所有专区

    • 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

    • 专区发布评论属默认订阅所评论专区(除付费小栈外)

    作者

    • 栈栈
      作者
    戳我,来吐槽~