简述 ZAB 协议(zookeeper Atomic Broadcast )【重要】

简介: 简述 ZAB 协议(zookeeper Atomic Broadcast )【重要】

image.png

首先 zookeeper 的核心是原子广播,这个机制保证了各个 server 之间的同步,而实现这个机制的协议叫做 ZAB 协议。ZAB 协议是为 zookeeper 专门设计的一种支持故障恢复的消息广播协议。

ZAB 协议只允许有一个主进程接收客户事务请求并处理,也就是 Leader。当 Leader 收到请求后,由于 leader 会为每一个 follow 创建一个队列,所以会将该事务放入响应队列中,并将那些没有被各 follow 服务器同步的事务转化为 Proposal 消息的形式发送给 follow 服务器,按顺序来处理事务,保证事务的顺序性。之后 leader 会在队列中顺序向其他节点广播该提案,follow 收到后会将其以事务的形式写入到本地日志中,并向 leader 发送反馈 ack 确认。leader 会等待其他 follow 的回复,当收到一半以上的 follow 响应时,leader 会向其他节点发送 commit 消息,同时提交该提案。

ZAB 有两种模式,分别是故障恢复模式和消息广播模式。当系统启动或者 leader 服务器出现故障等现象时,会进入故障恢复模式,这是会开启 leader 新一轮的选举,选举产生的准 leader 会与超过一半的 follow 进行同步,使数据一致。

当同步结束后,退出恢复模式,进入消息广播模式。当一台遵从 ZAB 协议的服务器启动后,如果检测到有 leader 在广播消息,会自动进入故障恢复模式,当其完成与 leader 的同步之后,才会进入消息广播模式;如果集群中的非 leader 节点收到客户端事务请求,非 leader 节点会将请求发送给 leader 服务器。

在故障恢复模式的时候,ZAB 协议需要保证两个地方,第一个是 ZAB 协议需要保证已经被 leader 提交的事务最终被所有的机器提交,第二个是需要保证必须要丢弃掉那些只在 leader 上提交的事务。选举时如果选择 ZXID 最大的节点则可以保证这两点问题。

leader 重新选举的条件是当 leader 宕机或发生故障,集群中少于一半的节点与当前 leader 保持连接。

简述 ZAB 协议(zookeeper Atomic Broadcast )_Java 大数据运动猿的博客 - CSDN 博客

相关文章
|
5月前
|
消息中间件 分布式计算 资源调度
《聊聊分布式》ZooKeeper与ZAB协议:分布式协调的核心引擎
ZooKeeper是一个开源的分布式协调服务,基于ZAB协议实现数据一致性,提供分布式锁、配置管理、领导者选举等核心功能,具有高可用、强一致和简单易用的特点,广泛应用于Kafka、Hadoop等大型分布式系统中。
|
消息中间件 分布式计算 安全
这一次,彻底弄懂ZooKeeper协议
ZooKeeper是动物园的意思,在2012年官方来给ZooKeeper写了这么一段有趣的“ZooKeeper之道”,难怪ZooKeeper现在发展得这么好。动物园管理员对他们负责的动物和参观动物的游客都尽心尽力。他们遵循一套守则,至今只有同行才知道,这套守则可以保证动物和游客的安全。大家好,我是南哥。一个Java学习与进阶的领路人,相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。
392 6
这一次,彻底弄懂ZooKeeper协议
|
分布式计算 负载均衡 算法
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
203 1
|
监控
分布式-Zookeeper-Zab协议
分布式-Zookeeper-Zab协议
|
Nacos 微服务
Zookeeper 的 ZAB 协议 以及 zookeeper 与 nacos 注册中心比对
Zookeeper 的 ZAB 协议 以及 zookeeper 与 nacos 注册中心比对
487 4
|
存储 负载均衡 网络协议
ZooKeeper【基础 01】简介+设计目标+核心概念+ZAB协议+典型应用场景
【4月更文挑战第10天】ZooKeeper【基础 01】简介+设计目标+核心概念+ZAB协议+典型应用场景
278 1
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
存储 负载均衡 Dubbo
分布式-Zookeeper(一)
分布式-Zookeeper(一)
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论