国产另类ts人妖一区二区_欧美肥老太做爰视频_快穿高h肉_国产欧美综合在线

當(dāng)前位置: 首頁 / 技術(shù)干貨 / 正文
ZooKeeper的選舉制度

2023-01-12

集群    leader  ○

  選舉制度的說明

  ZooKeeper是一個分布式協(xié)調(diào)服務(wù)組件,但它本身也是一個集群,并且是一個主從架構(gòu)的集群。與HDFS類似的是,這個集群中也是需要一個主節(jié)點(diǎn)和若干個從節(jié)點(diǎn)的。但是與HDFS不同,HDFS的主節(jié)點(diǎn)NameNode是需要我們在配置文件中指定的,而ZooKeeper集群的主節(jié)點(diǎn)并不是我們手動指定的,而是所有的節(jié)點(diǎn)啟動之后自己選舉出來的!因此,我們就需要了解一下ZooKeeper集群中的選舉制度到底是什么?主節(jié)點(diǎn)為什么可以當(dāng)選老大!

  ZooKeeper集群中,節(jié)點(diǎn)的角色大體有兩種:Leader 和 Follower。其中Leader為主節(jié)點(diǎn),F(xiàn)ollower為從節(jié)點(diǎn)。

  選舉中的幾個概念

  Leader

  Leader是ZooKeeper集群工作的核心,是ZooKeeper集群的主節(jié)點(diǎn)。也是事物請求(寫操作)的唯一調(diào)度和處理者,保證集群事物處理的順序性;集群內(nèi)部各個服務(wù)器的調(diào)度者。對于 create 、 setData 、 delete 等有寫操作的請求,需要統(tǒng)一轉(zhuǎn)發(fā)給Leader處理。Leader需要決定編號、執(zhí)行操作,這個過程稱為一個事物。

  Follower

  Follower是ZooKeeper集群中的從節(jié)點(diǎn),有以下的功能:

  1、處理客戶端非事物請求(讀操作),轉(zhuǎn)發(fā)事物請求給Leader(寫操作)。

  2、參與集群Leader選舉投票

  投票相關(guān)

  ●myid

  ○我們在搭建ZooKeeper集群的時候需要設(shè)置服務(wù)器的ID值,這個值在選舉的投票中有一定的權(quán)重占比。

  ●zxid

  ○事物ID,ZooKeeper會為每一個更新的操作分配一個事物ID。

  ○事物ID是一個64位的數(shù)字,且是全局單調(diào)遞增的。

  ○在一個節(jié)點(diǎn)的狀態(tài)信息中會看到這個值。

  ●epoch

  ○邏輯時鐘。

  在進(jìn)行選舉的時候,epoch > zxid > myid

  狀態(tài)相關(guān)

  ●LOOKING:競選狀態(tài)

  ●FOLLOWING:隨從狀態(tài),同步leader狀態(tài),參與投票

  ●OBSERVING:觀察狀態(tài),同步leader狀態(tài),不參與投票

  ●LEADING:領(lǐng)導(dǎo)狀態(tài)

  選舉發(fā)生的時機(jī)

  ●啟動ZooKeeper集群的時候

  ●ZooKeeper集群運(yùn)行中,Leader失聯(lián)

  選舉過程

  啟動集群選舉

  我們以3個節(jié)點(diǎn)的ZooKeeper集群為例,啟動的順序是qianfeng01, qianfeng02, qianfeng03

  1qianfeng01啟動,投自己一票。由于未滿足過半的條件,進(jìn)入到LOOKING狀態(tài)。

  2qianfeng02啟動,投自己一票。現(xiàn)在活躍的節(jié)點(diǎn)已經(jīng)過半,歸票:

  ○優(yōu)先比較Epoch,誰的大,誰當(dāng)選Leader

  ○如果Epoch相同,比較zxid,誰的大,誰當(dāng)選Leader

  ○如果zxid也相同,比較myid,誰的大,誰當(dāng)選Leader

  3qianfeng03啟動,由于集群中已經(jīng)出現(xiàn)了Leader,因此qianfeng03直接進(jìn)入FOLLOWING狀態(tài),成為Follower。

  集群運(yùn)行中,Leader失聯(lián)后的選舉

  集群在運(yùn)行的過程中,Leader失聯(lián)了。例如: 集群啟動之后,qianfeng02當(dāng)選為Leader,現(xiàn)在已經(jīng)失聯(lián)...

  ●qianfeng01、qianfeng03會進(jìn)入到LOOKING狀態(tài),開始投票,并每人都給自己投了一票。

  ●歸票:

  ○優(yōu)先比較Epoch,誰的大,誰當(dāng)選Leader

  ○如果Epoch相同,比較zxid,誰的大,誰當(dāng)選Leader

  ○如果zxid也相同,比較myid,誰的大,誰當(dāng)選Leader

好程序員公眾號

  • · 剖析行業(yè)發(fā)展趨勢
  • · 匯聚企業(yè)項目源碼

好程序員開班動態(tài)

More+
  • HTML5大前端 <高端班>

    開班時間:2021-04-12(深圳)

    開班盛況

    開班時間:2021-05-17(北京)

    開班盛況
  • 大數(shù)據(jù)+人工智能 <高端班>

    開班時間:2021-03-22(杭州)

    開班盛況

    開班時間:2021-04-26(北京)

    開班盛況
  • JavaEE分布式開發(fā) <高端班>

    開班時間:2021-05-10(北京)

    開班盛況

    開班時間:2021-02-22(北京)

    開班盛況
  • Python人工智能+數(shù)據(jù)分析 <高端班>

    開班時間:2021-07-12(北京)

    預(yù)約報名

    開班時間:2020-09-21(上海)

    開班盛況
  • 云計算開發(fā) <高端班>

    開班時間:2021-07-12(北京)

    預(yù)約報名

    開班時間:2019-07-22(北京)

    開班盛況
IT培訓(xùn)IT培訓(xùn)
在線咨詢
IT培訓(xùn)IT培訓(xùn)
試聽
IT培訓(xùn)IT培訓(xùn)
入學(xué)教程
IT培訓(xùn)IT培訓(xùn)
立即報名
IT培訓(xùn)

Copyright 2011-2023 北京千鋒互聯(lián)科技有限公司 .All Right 京ICP備12003911號-5 京公網(wǎng)安備 11010802035720號