ZAB协议是Zookeeper用来实现一致性的原子广播协议,该协议描述了zookeeper是如何实现一致性的,分为三个阶段
1.领导者选举阶段: 从Zookeeper集群中选出一个节点作为Leader,所有的写请求都会由Leader节点来处理
2.数据同步阶段: 集群中所有节点中的数据要和Leader节点保持一致,如果不一致则要进行同步
3.请求广播阶段: 当Leader节点接收到写请求时,会利用两阶段提交来广播该写请求,使得写请求像事务一样在其他节点上执行,达到节点上的数据实时一致
但值得注意的是,Zookeeper只是尽量的在达到强一致性,实际上仍然只是最终一致性的。