首頁技術(shù)文章正文

Zookeeper選舉機(jī)制的類型

更新時間:2022-04-27 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  大數(shù)據(jù)培訓(xùn)中Zookeeper選舉機(jī)制有兩種類型,分別為全新集群選舉和非全新集群選舉,下面分別對兩種類型進(jìn)行詳細(xì)介紹。

  1.全新集群選舉

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

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

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

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

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

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

  2.非全新集群選舉

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

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

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

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

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

分享到:
在線咨詢 我要報名
和我們在線交談!