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