zookeeper的選主機制的實現過程以及原理

2021-08-11 05:59:31 字數 806 閱讀 5028

zookeeper是乙個分布式的,開放原始碼的分布式應用程式協調服務,它包含乙個簡單的原語集,分布式式應用程式可以基於它實現同步服務,配置維護和命名服務等。zookeeper是hadoop的乙個子專案。在分布式應用中,由於部分開發者不能很好的使用鎖機制,以及基於訊息的協調機制不適合在某些應用中使用,因此需要一種可靠的、可擴充套件的、分布式的、可配置的協調機制來統一系統的狀態。zookeeper目的於此。

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

zk的選舉演算法有兩種:一種是基於basic paxos實現的,另外一種是基於fast paxos演算法實現的。系統預設的選舉演算法為fast paxos。

basic paxos流程

綜上:要使leader獲得多數server的支援,則server總數必須是奇數2n+1,且存活的server的數目不得少於n+1.每個server啟動後都會重複以上流程。具體流程圖如下所示:

fast paxos流程

某server首先向所有server提議自己要成為leader,當其它server收到提議以後,解決epoch和zxid的衝突,並接受對方的提議,然後向對方傳送接受提議完成的訊息,重複這個流程,最後一定能選舉出leader。其流程圖如下所示:

ES的選主機制

es集群中必須 有且只有乙個master節點,如果出現了兩個master節點 腦裂問題 那麼就出問題了,由哪乙個master節點來管理集群呢,傻傻的分不清楚,是不!那麼怎樣來進行master的選舉呢?主要根據以下三個方面來進行es的選舉 對有資格成為master的節點進行nodeid排序,每一次選舉...

zookeeper選主和同步機制

在上篇博文 zookeeper輕鬆入門 中,已經詳細介紹了zookeeper的架構和資料互動的過程。我們已經知道zookeeper的更新操作具有強一致性,而這一過程正是通過leader廣播實現的。本篇博文就在此基礎上詳細介紹一下zookeeper的選舉機制的同步機制。zookeeper的核心是原子廣...

17 kafka分割槽選主機制

leader的選擇方法非常多,大資料領域常用的的選舉方法有如下集中 1 zab zookeeper使用 a 快速leader選舉 leader election b 發現或者版本建立 epoch establish c 同步 follower從leader同步資料和狀態 d 廣播 leader廣播資...