日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

2021年大数据ZooKeeper(六):ZooKeeper选举机制

發布時間:2023/11/28 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021年大数据ZooKeeper(六):ZooKeeper选举机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

??????ZooKeeper選舉機制

概念

全新集群選舉

非全新集群選舉


ZooKeeper選舉機制

zookeeper默認的算法是FastLeaderElection,采用投票數大于半數則勝出的邏輯。

概念

服務器ID

比如有三臺服務器,編號分別是1,2,3。

編號越大在選擇算法中的權重越大。

選舉狀態

LOOKING,競選狀態。

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

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

LEADING,領導者狀態。

數據ID

服務器中存放的最新數據version。

值越大說明數據越新,在選舉算法中數據越新權重越大。

邏輯時鐘

也叫投票的次數,同一輪投票過程中的邏輯時鐘值是相同的。每投完一次票這個數據就會增加,然后與接收到的其它服務器返回的投票信息中的數值相比,根據不同的值做出不同的判斷。

全新集群選舉

假設目前有5臺服務器,每臺服務器均沒有數據,它們的編號分別是1,2,3,4,5,按編號依次啟動,它們的選擇舉過程如下:

  1. 服務器1啟動,給自己投票,然后發投票信息,由于其它機器還沒有啟動所以它收不到反饋信息,服務器1的狀態一直屬于Looking。
  2. 服務器2啟動,給自己投票,同時與之前啟動的服務器1交換結果,由于服務器2的編號大所以服務器2勝出,但此時投票數沒有大于半數,所以兩個服務器的狀態依然是LOOKING。
  3. 服務器3啟動,給自己投票,同時與之前啟動的服務器1,2交換信息,由于服務器3的編號最大所以服務器3勝出,此時投票數正好大于半數,所以服務器3成為領導者,服務器1,2成為小弟。
  4. 服務器4啟動,給自己投票,同時與之前啟動的服務器1,2,3交換信息,盡管服務器4的編號大,但之前服務器3已經勝出,所以服務器4只能成為小弟。
  5. 服務器5啟動,后面的邏輯同服務器4成為小弟。

非全新集群選舉

對于運行正常的zookeeper集群,中途有機器down掉,需要重新選舉時,選舉過程就需要加入數據ID服務器ID邏輯時鐘

數據ID:數據新的version就大,數據每次更新都會更新version。

服務器ID:就是我們配置的myid中的值,每個機器一個。

邏輯時鐘:這個值從0開始遞增,每次選舉對應一個值。 如果在同一次選舉中,這個值是一致的。

這樣選舉的標準就變成:

1、邏輯時鐘小的選舉結果被忽略,重新投票;

2、統一邏輯時鐘后,數據id大的勝出;

3、數據id相同的情況下,服務器id大的勝出;

根據這個規則選出leader。

總結

以上是生活随笔為你收集整理的2021年大数据ZooKeeper(六):ZooKeeper选举机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。