介绍:
ZAB协议是
Zookeeper
⽤来实现⼀致性的原⼦⼴播协议
,该协议描述了Zookeeper是如何实现⼀致性的
三个阶段:
-
领导者选举阶段 :从Zookeeper集群中选出⼀个节点作为Leader,所有的写请求都会由Leader节点来处理
-
数据同步阶段 :集群中所有节点中的数据要和Leader节点保持⼀致,如果不⼀致则要进⾏同步
-
请求⼴播阶段 :当Leader节点接收到写请求时,会利⽤两阶段提交来⼴播该写请求,使得写请求像事务⼀样在其他节点上执⾏,达到节点上的数据实时⼀致
但值得注意的是,Zookeeper只是尽量的在达到强⼀致性,实际上仍然只是最终⼀致性的。
![](https://i-blog.csdnimg.cn/blog_migrate/2fa2ae7d2cde08af7e456ec19a64e0ad.webp?x-image-process=image/format,png)