前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Zookeeper的ZAB协议与Paxos协议区别

Zookeeper的ZAB协议与Paxos协议区别

作者头像
allsmallpig
发布2021-02-25 15:22:20
8180
发布2021-02-25 15:22:20
举报
文章被收录于专栏:allsmallpi博客allsmallpi博客

摘要

一、联系1. 两者构建的系统都有一个Leader角色,Leader进程负责协调多个Follower进程的运行2. Leader进程都会等待超过半数的Follower进程做出正确的分亏后,才会将一个提案进行提交3. 在ZAB协议中每个Proposal中都包含一个epoch值,用来代表当前的Leader周期;在Paxos算法中,同样存在这样一个标识(Ballot)二、区别1. 两者的初衷或者

一、联系 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 分布式一致性原理与实践 》,写的很棒,两个协议都交代的很详细。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档