国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

用大白話(huà)給你解釋Zookeeper的選舉機(jī)制

大數(shù)據(jù)
Zookeeper 是一個(gè)分布式服務(wù)框架,主要是用來(lái)解決分布式應(yīng)用中遇到的一些數(shù)據(jù)管理問(wèn)題如:統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置項(xiàng)的管理等。

[[355622]]

 本文轉(zhuǎn)載自微信公眾號(hào)「愛(ài)笑的架構(gòu)師」,作者雷架 。轉(zhuǎn)載本文請(qǐng)聯(lián)系愛(ài)笑的架構(gòu)師公眾號(hào)。

Zookeeper 是一個(gè)分布式服務(wù)框架,主要是用來(lái)解決分布式應(yīng)用中遇到的一些數(shù)據(jù)管理問(wèn)題如:統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置項(xiàng)的管理等。

我們可以簡(jiǎn)單把 Zookeeper 理解為分布式家庭的大管家,那么管家團(tuán)隊(duì)是如何選出Leader的呢?好奇嗎,接下來(lái)帶領(lǐng)大家一探究竟。

人類(lèi)選舉的基本原理

講解 Zookeeper 選舉過(guò)程前先來(lái)介紹一下人類(lèi)的選舉。

我們每個(gè)人或多或少都經(jīng)歷過(guò)幾次選舉,在投票的過(guò)程中可能會(huì)遇到這樣幾種情況:

情況1:自己與幾個(gè)候選人都比較熟,你會(huì)將票投給你認(rèn)為能力比較強(qiáng)的人;

熟人選舉

情況2:自己也是候選人,并且與其他幾個(gè)候選人都不熟,這個(gè)時(shí)候你肯定想著要去拉票,因?yàn)橛X(jué)得自己才是最厲害的人呀,所有人都應(yīng)該把票投給我。但是遺憾的是在拉票的過(guò)程中,你發(fā)現(xiàn)別人比你強(qiáng),你開(kāi)始自卑了,最終還是把票投給了自己認(rèn)為最強(qiáng)的人。

自己參與選舉

所有人都投完票之后,最后從投票箱中進(jìn)行統(tǒng)計(jì),獲得票數(shù)最多的人當(dāng)選。

思維導(dǎo)圖

在整個(gè)投票過(guò)程中我們可以提煉出四個(gè)最核心的概念:

  • 候選人能力:投票的基本原則是選最強(qiáng)的人。
  • 遇強(qiáng)改投:如果后面發(fā)現(xiàn)更強(qiáng)的人可以改投票。
  • 投票箱:所有人的票都會(huì)放在投票箱。
  • 領(lǐng)導(dǎo)者:得票最多的人即為領(lǐng)導(dǎo)者。

從人類(lèi)選舉的原理我們來(lái)簡(jiǎn)單推導(dǎo)一下Zookeeper的選舉原理。

Zookeeper選舉的基本原理

注意如果 Zookeeper 是單機(jī)部署是不需要選舉的,集群模式下才需要選舉。

Zookeeper 的選舉原理和人類(lèi)選舉的邏輯類(lèi)似,套用一下人類(lèi)選舉的四個(gè)基本概念詳細(xì)解釋一下Zookeeper。

個(gè)人能力

如何衡量 Zookeeper 節(jié)點(diǎn)個(gè)人能力?答案是靠數(shù)據(jù)是否夠新,如果節(jié)點(diǎn)的數(shù)據(jù)越新就代表這個(gè)節(jié)點(diǎn)的個(gè)人能力越強(qiáng),是不是感覺(jué)很奇怪,就是這么定的!

在 Zookeeper 中通常是以事務(wù)id(后面簡(jiǎn)稱(chēng)zxid)來(lái)標(biāo)識(shí)數(shù)據(jù)的新舊程度(版本),節(jié)點(diǎn)最新的zxid越大代表這個(gè)節(jié)點(diǎn)的數(shù)據(jù)越新,也就代表這個(gè)節(jié)點(diǎn)能力越強(qiáng)。

zxid 的全稱(chēng)是 ZooKeeper Transaction Id,即 Zookeeper 事務(wù)id。

遇強(qiáng)改投

在集群選舉開(kāi)始時(shí),節(jié)點(diǎn)首先認(rèn)為自己是最強(qiáng)的(即數(shù)據(jù)是最新的),然后在選票上寫(xiě)上自己的名字(包括zxid和sid),zxid 是事務(wù)id,sid 唯一標(biāo)識(shí)自己。

緊接著會(huì)將選票傳遞給其他節(jié)點(diǎn),同時(shí)自己也會(huì)接收其他節(jié)點(diǎn)傳過(guò)來(lái)的選票。每個(gè)節(jié)點(diǎn)接收到選票后會(huì)做比較,這個(gè)人是不是比我強(qiáng)(zxid比我大),如果比較強(qiáng),那我就需要改票,明明別人比我強(qiáng),我也不能厚著臉皮對(duì)吧。

投票箱

與人類(lèi)選舉投票箱稍微有點(diǎn)不一樣,Zookeeper 集群會(huì)在每個(gè)節(jié)點(diǎn)的內(nèi)存中維護(hù)一個(gè)投票箱。節(jié)點(diǎn)會(huì)將自己的選票以及其他節(jié)點(diǎn)的選票都放在這個(gè)投票箱中。由于選票是互相傳閱的,所以最終每個(gè)節(jié)點(diǎn)投票箱中的選票會(huì)是一樣的。

領(lǐng)導(dǎo)者

在投票的過(guò)程中會(huì)去統(tǒng)計(jì)是否有超過(guò)一半的選票和自己選擇的是同一個(gè)節(jié)點(diǎn),即都認(rèn)為某個(gè)節(jié)點(diǎn)是最強(qiáng)的。一旦集群中有超過(guò)半數(shù)的節(jié)點(diǎn)都認(rèn)為某個(gè)節(jié)點(diǎn)最強(qiáng),那該節(jié)點(diǎn)就是領(lǐng)導(dǎo)者了,投票也宣告結(jié)束。

什么場(chǎng)景下 Zookeeper 需要選舉?

當(dāng) Zookeeper 集群中的一臺(tái)服務(wù)器出現(xiàn)以下兩種情況之一時(shí),需要進(jìn)入 Leader 選舉。

(1)服務(wù)器初始化啟動(dòng)。

(2)服務(wù)器運(yùn)行期間 Leader 故障。

啟動(dòng)時(shí)期的 Leader 選舉

假設(shè)一個(gè) Zookeeper 集群中有5臺(tái)服務(wù)器,id從1到5編號(hào),并且它們都是最新啟動(dòng)的,沒(méi)有歷史數(shù)據(jù)。

集群剛啟動(dòng)選舉過(guò)程

假設(shè)服務(wù)器依次啟動(dòng),我們來(lái)分析一下選舉過(guò)程:

(1)服務(wù)器1啟動(dòng)

發(fā)起一次選舉,服務(wù)器1投自己一票,此時(shí)服務(wù)器1票數(shù)一票,不夠半數(shù)以上(3票),選舉無(wú)法完成。

投票結(jié)果:服務(wù)器1為1票。

服務(wù)器1狀態(tài)保持為L(zhǎng)OOKING。

(2)服務(wù)器2啟動(dòng)

發(fā)起一次選舉,服務(wù)器1和2分別投自己一票,此時(shí)服務(wù)器1發(fā)現(xiàn)服務(wù)器2的id比自己大,更改選票投給服務(wù)器2。

投票結(jié)果:服務(wù)器1為0票,服務(wù)器2為2票。

服務(wù)器1,2狀態(tài)保持LOOKING

(3)服務(wù)器3啟動(dòng)

發(fā)起一次選舉,服務(wù)器1、2、3先投自己一票,然后因?yàn)榉?wù)器3的id最大,兩者更改選票投給為服務(wù)器3;

投票結(jié)果:服務(wù)器1為0票,服務(wù)器2為0票,服務(wù)器3為3票。此時(shí)服務(wù)器3的票數(shù)已經(jīng)超過(guò)半數(shù)(3票),服務(wù)器3當(dāng)選Leader。

服務(wù)器1,2更改狀態(tài)為FOLLOWING,服務(wù)器3更改狀態(tài)為L(zhǎng)EADING。

(4)服務(wù)器4啟動(dòng)

發(fā)起一次選舉,此時(shí)服務(wù)器1,2,3已經(jīng)不是LOOKING 狀態(tài),不會(huì)更改選票信息。交換選票信息結(jié)果:服務(wù)器3為3票,服務(wù)器4為1票。此時(shí)服務(wù)器4服從多數(shù),更改選票信息為服務(wù)器3。

服務(wù)器4并更改狀態(tài)為FOLLOWING。

(5)服務(wù)器5啟動(dòng)

與服務(wù)器4一樣投票給3,此時(shí)服務(wù)器3一共5票,服務(wù)器5為0票。

服務(wù)器5并更改狀態(tài)為FOLLOWING。

最終的結(jié)果:

服務(wù)器3是 Leader,狀態(tài)為 LEADING;其余服務(wù)器是 Follower,狀態(tài)為 FOLLOWING。

運(yùn)行時(shí)期的Leader選舉

在 Zookeeper運(yùn)行期間 Leader 和 非 Leader 各司其職,當(dāng)有非 Leader 服務(wù)器宕機(jī)或加入不會(huì)影響 Leader,但是一旦 Leader 服務(wù)器掛了,那么整個(gè) Zookeeper 集群將暫停對(duì)外服務(wù),會(huì)觸發(fā)新一輪的選舉。

初始狀態(tài)下服務(wù)器3當(dāng)選為L(zhǎng)eader,假設(shè)現(xiàn)在服務(wù)器3故障宕機(jī)了,此時(shí)每個(gè)服務(wù)器上zxid可能都不一樣,server1為99,server2為102,server4為100,server5為101

集群 Leader 節(jié)點(diǎn)故障

運(yùn)行期選舉與初始狀態(tài)投票過(guò)程基本類(lèi)似,大致可以分為以下幾個(gè)步驟:

(1)狀態(tài)變更。Leader 故障后,余下的非 Observer 服務(wù)器都會(huì)將自己的服務(wù)器狀態(tài)變更為L(zhǎng)OOKING,然后開(kāi)始進(jìn)入Leader選舉過(guò)程。

(2)每個(gè)Server會(huì)發(fā)出投票。

(3)接收來(lái)自各個(gè)服務(wù)器的投票,如果其他服務(wù)器的數(shù)據(jù)比自己的新會(huì)改投票。

(4)處理和統(tǒng)計(jì)投票,每一輪投票結(jié)束后都會(huì)統(tǒng)計(jì)投票,超過(guò)半數(shù)即可當(dāng)選。

(5)改變服務(wù)器的狀態(tài),宣布當(dāng)選。

話(huà)不多說(shuō)先來(lái)一張圖:

運(yùn)行器 Leader 故障后選舉流程

(1)第一次投票,每臺(tái)機(jī)器都會(huì)將票投給自己。

(2)接著每臺(tái)機(jī)器都會(huì)將自己的投票發(fā)給其他機(jī)器,如果發(fā)現(xiàn)其他機(jī)器的zxid比自己大,那么就需要改投票重新投一次。比如server1 收到了三張票,發(fā)現(xiàn)server2的xzid為102,pk一下發(fā)現(xiàn)自己輸了,后面果斷改投票選server2為老大。

選舉機(jī)制中涉及到的核心概念

敲黑板了,這些概念是面試必考的。

(1)Server id(或sid):服務(wù)器ID

比如有三臺(tái)服務(wù)器,編號(hào)分別是1,2,3。編號(hào)越大在選擇算法中的權(quán)重越大,比如初始化啟動(dòng)時(shí)就是根據(jù)服務(wù)器ID進(jìn)行比較。

(2)Zxid:事務(wù)ID

服務(wù)器中存放的數(shù)據(jù)的事務(wù)ID,值越大說(shuō)明數(shù)據(jù)越新,在選舉算法中數(shù)據(jù)越新權(quán)重越大。

(3)Epoch:邏輯時(shí)鐘

也叫投票的次數(shù),同一輪投票過(guò)程中的邏輯時(shí)鐘值是相同的,每投完一次票這個(gè)數(shù)據(jù)就會(huì)增加。

(4)Server狀態(tài):選舉狀態(tài)

LOOKING,競(jìng)選狀態(tài)。

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

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

LEADING,領(lǐng)導(dǎo)者狀態(tài)。

總結(jié)

(1)Zookeeper 選舉會(huì)發(fā)生在服務(wù)器初始狀態(tài)和運(yùn)行狀態(tài)下。

(2)初始狀態(tài)下會(huì)根據(jù)服務(wù)器sid的編號(hào)對(duì)比,編號(hào)越大權(quán)值越大,投票過(guò)半數(shù)即可選出Leader。

(3)Leader 故障會(huì)觸發(fā)新一輪選舉,zxid 代表數(shù)據(jù)越新,權(quán)值也就越大。

(4)在運(yùn)行期選舉還可能會(huì)遇到腦裂的情況,大家可以自行學(xué)習(xí)。

 

責(zé)任編輯:武曉燕 來(lái)源: 愛(ài)笑的架構(gòu)師
相關(guān)推薦

2019-05-17 08:27:23

SQL注入漏洞攻擊

2020-02-04 15:00:25

大白話(huà)認(rèn)識(shí)JVM

2023-12-26 18:22:05

RocketMQ延遲消息

2021-03-01 18:38:32

Mock測(cè)試軟件

2020-11-10 16:00:55

機(jī)器學(xué)習(xí)人工智能AI

2020-12-11 14:02:58

機(jī)器學(xué)習(xí)分類(lèi)算法回歸算法

2020-02-20 11:32:09

Kafka概念問(wèn)題

2024-12-09 08:18:33

2025-10-27 01:55:00

2021-01-27 13:50:17

AI 數(shù)據(jù)機(jī)器學(xué)習(xí)

2018-11-19 08:34:22

Hadoop架構(gòu)HDFS

2022-03-23 18:58:11

ZookeeperZAB 協(xié)議

2024-04-24 12:41:10

Rust安全性內(nèi)存

2021-01-22 09:39:54

人工智能人工智能技術(shù)

2019-08-14 09:13:38

中臺(tái)互聯(lián)網(wǎng)業(yè)務(wù)

2021-02-18 09:06:39

數(shù)據(jù)訪(fǎng)問(wèn)者模式

2023-09-18 14:34:07

Kubernetes云原生

2025-07-14 07:50:00

2020-09-08 06:30:59

微服務(wù)代碼模塊

2023-12-18 10:08:56

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

av男人天堂一区| 激情综合网俺也去| 麻豆一区二区99久久久久| 人妻少妇被粗大爽9797pw| 色综合中文综合网| 日本精品久久| 亚洲一区二区三区sesese| 成人动漫在线一区| 国产二区视频在线观看| 欧美久久精品午夜青青大伊人| 在线观看一区| 国产理论片免费观看| 日韩精品视频在线免费观看| 99视频精品视频高清免费| 鲁一鲁一鲁一鲁一澡| 制服丝袜亚洲精品中文字幕| 欧美男男gaytwinkfreevideos| 黄色网络在线观看| 欧美性大战久久| 精品久久成人| www日韩在线观看| 亚洲国产精品小视频| 欧美日韩国产高清| jizzjizzjizz亚洲女| 亚洲性猛交xxxxwww| 影音先锋久久久| 欧美jiizzhd精品欧美| 久久深夜福利免费观看| 精品一区二区三区av| 北条麻妃在线| 国产在线a不卡| 国产精品久久久久桃色tv| jvid一区二区三区| 永久免费精品视频网站| 欧美日本乱大交xxxxx| 999精品一区| 美女xx视频| 欧美高清视频一区二区| 成人av电影在线播放| 成人免费影院| 日本不卡一区二区三区在线观看 | 久久精品久久综合| 69久久精品| 91成人免费视频| 亚洲综合男人的天堂| 亚洲宅男网av| jizzjizzji欧美| 69**夜色精品国产69乱| 国产精品热久久久久夜色精品三区| 亚洲精品大片| 久在线观看视频| 中文字幕亚洲专区| 99免费精品视频| 精品国产18久久久久久二百| 国产精品一线二线三线| 在线日韩精品视频| 丰满白嫩尤物一区二区| 亚洲精品.com| 日韩少妇内射免费播放18禁裸乳| 在线视频一区二区| 国v精品久久久网| 亚洲成人高清| 爱情岛论坛vip永久入口| 国内精品免费午夜毛片| 亚洲欧洲制服丝袜| 久久国产小视频| 欧美18xxxxx| 精品国产乱码久久久久软件| 欧美精品xxxxbbbb| 日韩av中文字幕一区二区三区| av片在线观看永久免费| 宅男噜噜99国产精品观看免费| 亚洲精品国产精品国自产观看浪潮| 日本欧美一区二区三区| 午夜欧美巨大性欧美巨大| 91丨porny丨探花| 欧美大片免费观看| 亚洲人成电影网站色mp4| 欧美第一精品| www.久久ai| 欧美深夜福利视频| 日本一区二区在线免费播放| 色婷婷狠狠综合| 男人操女人的视频在线观看欧美| 日韩av福利| 3d动漫成人在线| 国产精品一 二 三| 亚洲国产黄色片| 久久网站热最新地址| 欧美男人操女人视频| 黄色在线免费观看大全| 亚洲国产精品一区二区第四页av| 日韩在线视频观看| 亚洲天堂久久久久久久| 91久久午夜| 欧美激情啪啪| 亚洲成人观看| 伊人精品久久久久7777| 欧美极品少妇与黑人| 欧美性精品220| 精品一区二区三区在线播放视频| 国产亚洲亚洲国产一二区| 佐山爱痴汉视频一区二区三区| 国产精品夜间视频香蕉| 日韩欧美精品三级| 久久精品亚洲精品国产欧美| 99国产精品一区二区| 久久久久久国产三级电影| 欧美另类高清videos| 亚洲一级特黄| 日韩伦理三区| 毛片一级免费一级| 欧洲精品一区色| 久久99精品视频一区97| 欧美性猛交xxxx乱大交| 国内精品久久久久影院薰衣草 | 免费看一区二区三区| 尤物网站在线| 在线无限看免费粉色视频| 88xx成人精品| 精品久久一区二区| 国产精品的网站| 久久久久久久尹人综合网亚洲| 久久免费精品| 免费在线超碰| 91好吊色国产欧美日韩在线| 97自拍视频| 久久综合久久八八| 欧美在线影院一区二区| www.成人在线| 在线成人www免费观看视频| 视频在线一区| av在线导航| 浪潮av在线| 国产九九九九九| 久久艳妇乳肉豪妇荡乳av| 91高清视频在线免费观看| 欧美本精品男人aⅴ天堂| 一二三区精品福利视频| 国产成人高清在线| 在线精品一区二区| 亚洲美女网站18| 在线色视频网| 香港三级韩国三级日本三级| 婷婷久久综合九色综合伊人色| 国产在线视频不卡二| 亚洲综合色网| 一区二区三区自拍视频| 牛牛精品在线视频| 天堂在线中文资源| 国产女女做受ⅹxx高潮| 亚洲一二区在线| 国产精品午夜av在线| 国产精品扒开腿做爽爽爽视频| 精品国产一区久久久| 亚洲国产成人久久综合一区| 色屁屁一区二区| 亚洲欧美色综合| 97se亚洲国产综合在线| 免费在线观看一区二区三区| 午夜性色一区二区三区免费视频 | 日韩一二三区| 成人亚洲欧美| 中文字幕在线观看网站| 日韩av成人| 一级免费视频| 亚洲老女人av| av免费观看国产| 99精品一区二区三区的区别| 麻豆成人av| 国产中文一区二区| 92看片淫黄大片看国产片| 青青a在线精品免费观看| 欧美激情二区三区| 欧美成人国产va精品日本一级| 欧美日韩国产一区中文午夜| 91精品国产高清自在线 | 黑人糟蹋人妻hd中文字幕| 欧美精品在欧美一区二区少妇| 欧美激情精品久久久久久黑人| 久久精品一二三区| 欧美成人明星100排名| 超碰这里只有精品| 韩国理伦片一区二区三区在线播放| 青草青草久热精品视频在线网站| 国产一区二区美女视频| 亚洲精品视频在线观看视频| 日韩av网址在线观看| 亚洲第一色中文字幕| 亚洲精品一线二线三线| 亚洲国产91精品在线观看| 精品国产伦一区二区三区观看体验| 日韩视频一区二区| 亚洲精品在线三区| 亚洲黄一区二区| 亚洲女同精品视频| 亚洲欧洲成视频免费观看| 尤物yw午夜国产精品视频明星| 中文字幕日韩视频| 欧美xxxx14xxxxx性爽|