ZAB 协议
ZooKeeper 的一致性保证来自于 ZAB 协议。
ZAB(ZooKeeper Atomic Broadcast)是 ZooKeeper 的核心协议,它保证:
- 消息原子性:消息要么在所有节点都提交,要么都不提交
- 消息顺序性:消息按全局顺序提交
- Leader 崩溃恢复:Leader 崩溃后能快速恢复
【架构权衡】 ZAB 是专门为 ZooKeeper 设计的协议,它结合了 Paxos 的思想和两阶段提交的效率。在 Leader 选举和消息广播之间切换,是 ZAB 的核心设计。
一、核心问题 🔴
1.1 ZAB 两种模式
1.2 Leader 选举
二、消息广播流程
三、落地 Checklist
- 节点数:生产环境至少 3 节点,推荐 5 节点
- 节点分布:跨机架/跨机房部署
- Leader 监控:监控 Leader 切换次数
- 数据同步:监控数据同步延迟