ZAB协议是 Zookeeper 的一致性协议,基本原理与 Raft 相似,只是在实现方式上,有所差异。由于在 Raft 章节中,已经详细介绍了一致性协议实现的相关细节,所以本章只是简单的介绍 ZAB 协议实现,然后在介绍两种协议的差异。
状态机
状态机 |
说明 |
Leader |
1.事务请求的唯一调度和处理者,保证集群事务处理的顺序性。 2.集群内部各服务器的调度者 |
Follower |
1.处理客户端非事务请求,转发事务请求给 Leader 服务器 2.参与事务请求 Proposal 的投票 3.参与 Leader 选举 |
Observer |
基本与 Follower 一致,但不参与任何形式的投票。包括 Proposal 投票和 Leader 选举。通常用于在不影响集群事务处理能力的前提下提升集群非事务(例如 getData )处理的能力。 |