ZAB的全称是 Zookeeper Atomic Broadcast(Zookeeper原子广播)。ZAB协议是专为分布式协调服务Zookeeper设计的一种支持崩溃恢复的原子广播协议。它通过一个单一的领导者进行消息广播,确保可靠投递、全序和因果顺序。在崩溃恢复模式下,ZAB协议能够选举新的领导者并恢复系统状态,以应对服务器故障。
ZAB协议的工作原理主要包括以下几个阶段:
选举阶段:
在集群启动或领导者崩溃后,ZAB协议会选举一个新的领导者。
广播阶段:
领导者负责将数据变更广播给所有Follower节点。
提交阶段:
Follower节点接收到数据变更后,会进行本地存储,并向领导者发送确认。当领导者收到大多数Follower的确认后,会提交这些变更。
通知阶段:
一旦变更被提交,领导者会通知所有Follower节点提交结果,并更新系统状态。
ZAB协议通过这些阶段确保分布式系统中数据的一致性和高可用性。