ZAB(ZooKeeper Atomic Broadcast)协议是ZooKeeper的核心协议。
ZAB有哪些阶段
ZAB的论文里,将ZAB描述为以下的四个阶段:
协议包括了以下阶段:
- Phase 0 – prospective leader election:选出leader。
- Phase 1 – discovery:更新epoch。
- Phase 2 – synchronization:主从之间数据对齐。
- Phase 3 – broadcast:类似两阶段提交。
选举阶段就是选出leader,这篇文章简要的介绍了一下流程。
实际上ZooKeeper在实现的时候没有严格按照4阶段来实现的,而是按照3阶段来实现的:
- Fast Leader Election:选主。
- Recovery Phase:更新epoch,对齐数据。
- Broadcast Phase:类似两阶段提交。
ZooKeeper应用
- 选主(可以参考这篇文章)
- 分布式锁(粒度较大)
- 集群管理
- 配置管理