zookeeper的工作原理

2021-07-11 13:10:45 字數 668 閱讀 3551

zookeeper的核心是原子廣播,這個機制保證了各個server之間的同步。實現這個機制的協議叫做zab協議。zab協議有兩種模式,它們分別是恢復模式和廣播模式。當服務啟動或者在領導者崩潰後,zab就進入了恢復模式,當領導者被選舉出來,且大多數server的完成了和leader的狀態同步以後,恢復模式就結束了。狀態同步保證了leader和server具有相同的系統狀態。

一旦leader已經和多數的follower進行了狀態同步後,他就可以開始廣播訊息了,即進入廣播狀態。這時候當乙個server加入zookeeper服務中,它會在恢復模式下啟動,發現leader,並和leader進行狀態同步。待到同步結束,它也參與訊息廣播。zookeeper服務一直維持在broadcast狀態,直到leader崩潰了或者leader失去了大部分的followers支援。

廣播模式需要保證proposal被按順序處理,因此zk採用了遞增的事務id號(zxid)來保證。所有的提議(proposal)都在被提出的時候加上了zxid。實現中zxid是乙個64為的數字,它高32位是epoch用來標識leader關係是否改變,每次乙個leader被選出來,它都會有乙個新的epoch。低32位是個遞增計數。

當leader崩潰或者leader失去大多數的follower,這時候zk進入恢復模式,恢復模式需要重新選舉出乙個新的leader,讓所有的server都恢復到乙個正確的狀態

ZooKeeper的工作原理

zookeeper是乙個分布式的,開放原始碼的分布式應用程式協調服務,它包含乙個簡單的原語集,分布式式應用程式可以基於它實現同步服務,配置維護和命名服務等。zookeeper是hadoop的乙個子專案。在分布式應用中,由於工程師不能很好的使用鎖機制,以及基於訊息的協調機制不適合在某些應用中使用,因此...

Zookeeper的工作原理

zookeeper使用了zab zookeeper atomic broadcast 協議,進行了訊息廣播,崩潰恢復,資料同步 基於該協議,zookeeper 實現了一種主備模式的系統架構來保持集群中各個副本之間的資料一致性,同時其崩潰恢復過程也確保zk集群的高可用性,所以leader是主,foll...

Zookeeper之工作原理

zookeeper是乙個分布式的,開放原始碼的分布式應用程式協調服務,它包含乙個簡單的原語集,分布式應用程式可以基於它實現同步服務,配置維護和命名服務等。zookeeper是hadoop的乙個子專案,其發展歷程無需贅述。在分布式應用中,由於工程師不能很好地使用鎖機制,以及基於訊息的協調機制不適合在某...