国产精品色哟哟_男男激情3p互攻_色偷偷影院_和女同学厕所做了四次

當前位置: 首頁 / 技術干貨 / 正文
ZooKeeper的選舉制度

2023-01-12

集群    leader  ○

  選舉制度的說明

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

  ZooKeeper集群中,節點的角色大體有兩種:Leader 和 Follower。其中Leader為主節點,Follower為從節點。

  選舉中的幾個概念

  Leader

  Leader是ZooKeeper集群工作的核心,是ZooKeeper集群的主節點。也是事物請求(寫操作)的唯一調度和處理者,保證集群事物處理的順序性;集群內部各個服務器的調度者。對于 create 、 setData 、 delete 等有寫操作的請求,需要統一轉發給Leader處理。Leader需要決定編號、執行操作,這個過程稱為一個事物。

  Follower

  Follower是ZooKeeper集群中的從節點,有以下的功能:

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

  2、參與集群Leader選舉投票

  投票相關

  ●myid

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

  ●zxid

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

  ○事物ID是一個64位的數字,且是全局單調遞增的。

  ○在一個節點的狀態信息中會看到這個值。

  ●epoch

  ○邏輯時鐘。

  在進行選舉的時候,epoch > zxid > myid

  狀態相關

  ●LOOKING:競選狀態

  ●FOLLOWING:隨從狀態,同步leader狀態,參與投票

  ●OBSERVING:觀察狀態,同步leader狀態,不參與投票

  ●LEADING:領導狀態

  選舉發生的時機

  ●啟動ZooKeeper集群的時候

  ●ZooKeeper集群運行中,Leader失聯

  選舉過程

  啟動集群選舉

  我們以3個節點的ZooKeeper集群為例,啟動的順序是qianfeng01, qianfeng02, qianfeng03

  1qianfeng01啟動,投自己一票。由于未滿足過半的條件,進入到LOOKING狀態。

  2qianfeng02啟動,投自己一票。現在活躍的節點已經過半,歸票:

  ○優先比較Epoch,誰的大,誰當選Leader

  ○如果Epoch相同,比較zxid,誰的大,誰當選Leader

  ○如果zxid也相同,比較myid,誰的大,誰當選Leader

  3qianfeng03啟動,由于集群中已經出現了Leader,因此qianfeng03直接進入FOLLOWING狀態,成為Follower。

  集群運行中,Leader失聯后的選舉

  集群在運行的過程中,Leader失聯了。例如: 集群啟動之后,qianfeng02當選為Leader,現在已經失聯...

  ●qianfeng01、qianfeng03會進入到LOOKING狀態,開始投票,并每人都給自己投了一票。

  ●歸票:

  ○優先比較Epoch,誰的大,誰當選Leader

  ○如果Epoch相同,比較zxid,誰的大,誰當選Leader

  ○如果zxid也相同,比較myid,誰的大,誰當選Leader

好程序員公眾號

  • · 剖析行業發展趨勢
  • · 匯聚企業項目源碼

好程序員開班動態

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

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

    開班盛況

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

    開班盛況
  • 大數據+人工智能 <高端班>

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

    開班盛況

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

    開班盛況
  • JavaEE分布式開發 <高端班>

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

    開班盛況

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

    開班盛況
  • Python人工智能+數據分析 <高端班>

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

    預約報名

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

    開班盛況
  • 云計算開發 <高端班>

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

    預約報名

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

    開班盛況
IT培訓IT培訓
在線咨詢
IT培訓IT培訓
試聽
IT培訓IT培訓
入學教程
IT培訓IT培訓
立即報名
IT培訓

Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號