什么是 ZAB(Zookeeper 原子广播协议)?

ZAB 协议确保 Zookeeper 复制按顺序完成,并且还负责领导节点的选举和任何失败节点的恢复。 在 Zookeeper 生态系统中,leader 节点是一切的核心; 每个集群都有一个leader节点,其余的节点是follower。 所有传入的客户端请求和状态更改首先由领导者接收,负责将其复制到所有追随者(及其本身)。 所有传入的读取请求也由其自身内的领导者及其追随者进行负载平衡。

ZAB有哪些职责?

顺序维护:
如果在 X 的发送者提交事务 Y 之后接收到事务 X,则 Y 必须在 X 之前被排序。如果客户端在 X 之后发送 Z,那么 Z 必须在 X 之前被排序。

可靠的交付:
如果事务“A”已由一台服务器提交,那么所有服务器都提交它很重要。

总顺序维护:
客户端状态的更改在 Zookeeper 世界中称为事务。 如果某个服务器在事务 Y 之前提交了事务 X,则所有服务器都必须复制相同的顺序。 只要所需的最小节点数(多数)达到,就会进行交易复制。 在节点发生故障并恢复的情况下,该特定节点应该能够复制在其停机期间提交的所有事务。

ZAB是如何实施的?

Zookeeper 围绕两阶段提交协议构建,允许它复制所有事务,同时牢记上述所有设计原则。领导节点在收到客户端状态更改请求后生成交易并为其分配序列号。然后它将这些交易发送到所有的跟随者节点并等待他们的确认。

When receiving ACKs from a quorum, commit calls are sent to the quorum
for all the transactions. A follower checks the sequel number of the
issued transaction and only commits it if it doesn’t have any
outstanding transactions in the queue.

当收到来自quorum的 ACK 时,所有事务的提交调用都会发送到quorum。follower检查发出的事务的序列号,只有在队列中没有任何未完成的事务时才提交它。

一个节点只有在拥有法定数量的跟随者节点时才能成为领导者节点。如果领导节点出现故障,将调用恢复协议,其中涉及以下阶段:

Election of a new leader
Discovery across the cluster.
Synchronization of transactions.
Broadcast of relevant data.

下一阶段很重要,因为这是所有追随者与新的可能的领导者取得联系以努力获取有关最近接受的交易的信息的时候。这是必要的,因为这是跨集群的更新事务序列的产生方式。

下一步是同步,基本完成了协议的恢复工作。通过使用由领导者提供的更新数据,集群中的所有副本都被同步。

领导者将其历史中存在的交易发送给所有追随者,如果追随者发现他们的历史落后于领导者,他们就会开始确认传入的交易。当收到来自仲裁的 ACK 时,将发送提交消息;这是可能的/潜在的领导者实际上成为集群的新领导者的地方。

参考

Zookeeper Atomic Broadcast Protocol (ZAB) and implementation of Zookeeper. - CloudKarafka, Apache Kafka Message streaming as a Service

ZAB协议(ZooKeeper Atomic Broadcast)入门相关推荐

  1. ZAB(Zookeeper Atomic Broadcast)协议详解

    一.什么是 Zab协议 ZAB( Zookeeper Atomic Broadcast:Zookeeper原子广播)Zookeeper 通过 ZAB 协议保证分布式事务的最终一致性. [1]ZAB协议 ...

  2. 十分钟了解ZAB(Zookeeper Atomic Broadcast)协议

    十分钟了解ZAB(Zookeeper Atomic Broadcast)协议 Zookeeper基于ZAB(Zookeeper Atomic Broadcast),实现了主备模式下的系统架构,保持集群 ...

  3. [转]十分钟了解ZAB(Zookeeper Atomic Broadcast)协议

    Zookeeper基于ZAB(Zookeeper Atomic Broadcast),实现了主备模式下的系统架构,保持集群中各个副本之间的数据一致性. ZAB协议定义了选举(election).发现( ...

  4. Zookeeper学习笔记之 Zab协议(Zookeeper Atomic Broadcast)

    Zab协议(Zookeeper Atomic Broadcast): 广播模式: Leader将所有更新(称为proposal),顺序发送给Follower 当Leader收到半数以上的Followe ...

  5. Zookeeper ZAB协议原理浅析

    文章目录 前言 1. 基本角色和概念 2. Leader Election 3. Discovery 4. Synchronization 5. BroadCast 后记 前言 DTCC 要在下周一到 ...

  6. ZooKeeper ZAB协议:崩溃恢复、消息广播

    文章目录 ZAB协议 消息广播 崩溃恢复 ZAB协议 ZAB(ZooKeeper Atomic Broadcast 原子广播) 协议是为分布式协调服务ZooKeeper专门设计的一种支持崩溃恢复的原子 ...

  7. Zookeeper之ZAB协议

    什么是Zab协议 Zab 协议的作用 Zab 协议原理 Zab 协议核心 Zab 协议内容 原子广播 崩溃恢复 如何保证数据一致性 Zab 协议如何数据同步 如何处理需要丢弃的 Proposal Za ...

  8. Zookeeper理解---ZAB协议

    ZAB协议 Zookeeper并不是完全采用Paxos算法,而是使用了一种称为Zookeeper Atomic Broadcast(ZAB,Zookeeper原子消息广播协议)作为数据一致性的核心算法 ...

  9. Zookeeper——一致性协议:Zab协议

    转自:https://www.jianshu.com/p/2bceacd60b8a 什么是Zab协议 Zab 协议的作用 Zab 协议原理 Zab 协议核心 Zab 协议内容 原子广播 崩溃恢复 如何 ...

最新文章

  1. docker redis 多个实例
  2. 最热开源无服务器函数:五大Fission架构参考
  3. vue+webpack+amazeui项目小记
  4. 【深度学习笔记】ROC曲线 vs Precision-Recall曲线
  5. ActivityManager.MemoryInfo 小问题
  6. HashMap的负载因子为什么默认是0.75
  7. linux用光盘作yum源实验步骤,Linux使用系统光盘作为YUM源
  8. 95-910-335-源码-FlinkSQL-Calcite-FlinkSQL解析
  9. Android实现“是否退出”对话框和“带图标的列表”对话框
  10. Lucene 索引维护 之 删除 与 更新 文档
  11. 在vs2005中遇到的调试问题以及解决办法
  12. Java8(JDK1.8)新特性
  13. 服务器扩容申请文档,服务器内存扩容的申请
  14. Flink1.13 DataStream API - Event Time - Generating Watermarks
  15. 《富爸爸穷爸爸》:为什么你很穷
  16. 玩转亚马逊 AWS IoT(3): SpringBoot 2.7 集成 AWS IoT 服务
  17. 计算机信息数字化基础1测验题,20春-计算机信息技术-章建民-1-中国大学mooc-题库零氪...
  18. 如何判断2的n次方?用四种方式来扒一扒。
  19. 三明梅列:社区服务走进“微时代”
  20. 留学计算机美国硕士,美国硕士留学计算机专业录取情况

热门文章

  1. C++之基类构造函数初始化
  2. 人脸方向学习(十四):Face Anti-Spoofing-人脸活体检测-双目红外活体检测解读
  3. python自定义函数名_使用自定义名称创建Python动态函数
  4. Css单位px,rem,em,vw,vh的区别
  5. Python图像纹理分割
  6. 天津事业编计算机岗位综合知识,天津事业编综合知识考什么
  7. 注解mysql事物管理_Spring 使用注解方式进行事务管理
  8. php易宝支付扫码支付代码_谈谈扫码支付
  9. 对超级计算机的认识有关论文,计算机科与技术专业的认识与思考.docx
  10. python散点图拟合曲线如何求拟合_python 拟合曲线并求参