教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Zookeeper選舉機制有幾種類型?選舉過程和選舉步驟

更新時間:2021年08月12日14時44分 來源:傳智教育 瀏覽次數:

好口碑IT培訓

Zookeeper選舉機制有兩種類型,分別為全新集群選舉和非全新集群選舉,下面分別對兩種類型進行詳細講解。


1.全新集群選舉

全新集群選舉是新搭建起來的,沒有數據ID和邏輯時鐘的數據影響集群的選舉。假設,目前有5臺服務器,它們的編號分別是1-5,按編號依次啟動Zookeeper服務。下面來講解全新集群選舉的過程。

步驟1:服務器1啟動,首先,會給自己投票;其次,發(fā)投票信息,由于其它機器還沒有啟動所以它無法接收到投票的反饋信息,因此服務器1的狀態(tài)一直屬于LOOKING狀態(tài)。

步驟2:服務器2啟動,首先,會給自己投票;其次,在集群中啟動Zookeeper服務的機器發(fā)起投票對比,這時它會與服務器1交換結果,由于服務器2的編號大,所以服務器2勝出,此時服務器1會將票投給服務器2,但此時服務器2的投票數并沒有大于集群半數(2<5/2),所以兩個服務器的狀態(tài)依然是LOOKING狀態(tài)。

步驟3:服務器3啟動,首先會給自己投票;其次,與之前啟動的服務器1、2交換信息,由于服務器3的編號最大所以服務器3勝出,那么服務器1、2會將票投給服務器3,此時投票數正好大于半數(3>5/2),所以服務器3成為領導者狀態(tài),服務器1、2成為追隨者狀態(tài)。

步驟4:服務器4啟動,首先,給自己投票;其次,與之前啟動的服務器1、2、3交換信息,盡管服務器4的編號大,但是服務器3已經勝出。所以服務器4只能成為追隨者狀態(tài)。

步驟5:服務器5啟動,同服務器4一樣,均成為追隨者狀態(tài)。


2.非全新集群選舉

對于正常運行的Zookeeper集群,一旦中途有服務器宕機,則需要重新選舉時,選舉的過程中就需要引入服務器ID、數據ID和邏輯時鐘。這是由于Zookeeper集群已經運行過一段時間,那么服務器中就會存在運行的數據。下面來講解非全新集群選舉的過程。

步驟1:首先,統(tǒng)計邏輯時鐘是否相同,邏輯時鐘小,則說明途中可能存在宕機問題,因此數據不完整,那么該選舉結果被忽略,重新投票選舉;

步驟2:其次,統(tǒng)一邏輯時鐘后,對比數據ID值,數據ID反應數據的新舊程度,因此數據ID大的勝出;

步驟3:如果邏輯時鐘和數據ID都相同的情況下,那么比較服務器ID(編號),值大則勝出;

簡單的講,非全新集群選舉時是優(yōu)中選優(yōu),保證Leader是Zookeeper集群中數據最完整、最可靠的一臺服務器。

猜你喜歡:

Zookeeper的Leader選舉涉及哪些知識點?

Shell教程:通過Shell命令操作Zookeeper

Zookeeper數據發(fā)布與訂閱主要應用場景有哪些?

傳智教育java開發(fā)培訓課程



0 分享到:
和我們在線交談!