分布式-Zookeeper-Zab协议

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 分布式-Zookeeper-Zab协议

Zab协议

Zab协议:Zab协议和分布一致性协议Paxos协议一样的,Zookeeper并没有使用Paxos分布式一致性协议,而是使用Zookeeper独有的Zab协议,这个协议也是保证了Zookeeper数据的一致性的,Zab协议有点类似于2pc协议,两段提交。

在Leader选举的过程中涉及到了Zab协议,Zab协议中涉及两个方面:

1、原子广播:为了保证数据的一致性。

比如说一个客户端的一个写的请求过来,这个请求会直接落在leader上。

写完之后会在Leader上面会生成一个日志,这个日志由Leader进行原子广播,就是通知所属下的follower节点,我的数据更新了(这个协议属于Proposal的提议),你们马上去更新,所有的foolower更新之后会给Leader的一个回馈(发回一个ACK的确认的标志)。为了保证效率的话,只要Leader不挂掉的话,只要所有的foolower节点的一半加1的个数的节点反馈给Leader(由于网络的原因不会等到所有的从节点都给返回ACK),这时Leader会向所有的在线foolower节点(不管是否发送ACK)发送commit请求,从而所有的foolower节点的日志文件的数据和Leader节点的日志文件同步,这就是Zab协议保证数据的一致性。

为什么不是所有的follow节点都返回ACK呢?

原因如下:有可能当Leader发出Proposal协议的时候,有可能follow节点挂掉了。这也就是follow节点不全返回ACK的原因。zk集群至少保证两台。

2、崩溃修复

当Leader崩溃的话,也就是挂掉的话,所有的follow节点会根据zxid和serverId的大小来选举出哪个是Leader。zxid事务最大的表明它已经执行了提议并且执行了commit的命令。一旦最大,说明它的数据是最新的。说明数据同步的开销就很小。这就是zab协议设计非常经典的地方。

然后客户端是根据Zab协议中的Following和Leading去判断哪个是Leader。

而Looking状态是还没有找到Leader。Observer有点类似于管家的角色,既不参与投票和选举,用来收集票数的和监控节点的状态的。当zk集群进行leader选举的时候,整个集群不对外提供服务的,observer状态将是wating状态。当leader选举出来的话,observer才是工作的状态。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
11月前
|
网络安全 虚拟化
zookeeper集群不能通讯
zookeeper集群不能通讯
|
11小时前
|
存储 负载均衡 Dubbo
分布式-Zookeeper(一)
分布式-Zookeeper(一)
|
11小时前
|
存储 NoSQL Redis
分布式-Zookeeper(二)
分布式-Zookeeper(二)
|
11小时前
|
NoSQL 容灾 关系型数据库
分布式协调服务-Zookeeper
分布式协调服务-Zookeeper
|
4月前
|
消息中间件
【ZooKeeper系列】那ZooKeeper为什么还采用ZAB协议
ZooKeeper的流程是这样的,针对客户端的事务请求,Leader服务器会为其生成对应的事务Proposal,并发送给集群中其余机器,然后再分别收集各自的选票。因为ZAB协议将二阶段提交中的事务中断逻辑移除,所以只需要收集过半Follower服务器的反馈Ack后即可,最后就是进行事务提交。
【ZooKeeper系列】那ZooKeeper为什么还采用ZAB协议
|
4月前
|
网络协议 中间件 数据库
Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)
Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)
233 0
|
4月前
|
存储 API
Zookeeper分布式协调服务
Zookeeper分布式协调服务
|
算法
ZooKeeper-集群-ZAB协议与数据同步
前言 在前面两篇文章中,我们认识了什么是ZooKeeper,ZooKeeper有哪些功能,ZooKeeper集群,以及ZooKeeper集群中的选举机制。那么在ZooKeeper集群中,数据是如何在节点间同步的呢?数据同步过程中又会产生哪些问题又是如何解决的呢? 在下面这篇文章中,将为大家讲解
190 0
|
数据库
Zookeeper(二)集群搭建与选举机制
Zookeeper(二)集群搭建与选举机制
124 0
聊聊Zookeeper和其核心原子广播机制
聊聊Zookeeper和其核心原子广播机制
108 0