成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

談你對(duì)Zookeeper 選舉原理的理解

開發(fā) 架構(gòu)
Zookeeper 集群是一種典型的中心化架構(gòu),也就是會(huì)有一個(gè) Leader 作為決策節(jié)點(diǎn),專門負(fù)責(zé)事務(wù)請(qǐng)求的處理和數(shù)據(jù)的同步。這種架構(gòu)的好處是可以減少集群架構(gòu)里面數(shù)據(jù)同步的復(fù)雜度,集群管理會(huì)更加簡(jiǎn)單和穩(wěn)定。

?1.什么是Leader選舉

首先,Zookeeper 集群節(jié)點(diǎn)由三種角色組成,分別是:

圖片

Leader,負(fù)責(zé)所有事務(wù)請(qǐng)求的處理,以及過(guò)半提交的投票發(fā)起和決策。

Follower,負(fù)責(zé)接收客戶端的非事務(wù)請(qǐng)求,而事務(wù)請(qǐng)求會(huì)轉(zhuǎn)發(fā)給 Leader 節(jié)點(diǎn)來(lái)處理, 另外,F(xiàn)ollower 節(jié)點(diǎn)還會(huì)參與 Leader 選舉的投票。

Observer,負(fù)責(zé)接收客戶端的非事務(wù)請(qǐng)求,事務(wù)請(qǐng)求會(huì)轉(zhuǎn)發(fā)給 Leader 節(jié)點(diǎn)來(lái)處理,Observer 節(jié)點(diǎn)不參與任何投票,只是為了擴(kuò)展 Zookeeper 集群來(lái)分擔(dān)讀操作的壓力。

圖片

其次,Zookeeper 集群是一種典型的中心化架構(gòu),也就是會(huì)有一個(gè) Leader 作為決策節(jié)點(diǎn),專門負(fù)責(zé)事務(wù)請(qǐng)求的處理和數(shù)據(jù)的同步。這種架構(gòu)的好處是可以減少集群架構(gòu)里面數(shù)據(jù)同步的復(fù)雜度,集群管理會(huì)更加簡(jiǎn)單和穩(wěn)定。

但是,會(huì)帶來(lái) Leader 選舉的一個(gè)問(wèn)題,也就是說(shuō),如果 Leader 節(jié)點(diǎn)宕機(jī)了,為了保證集群繼續(xù)提供可靠的服務(wù),Zookeeper 需要從剩下的 Follower 節(jié)點(diǎn)里面去選舉一個(gè)新的節(jié)點(diǎn)作為L(zhǎng)eader,也就是所謂的 Leader 選舉。

圖片

2.選舉原理

接下來(lái),給大家介紹一下Zookeeper的選舉原理。

首先呢,Zookeeper中的每一個(gè)節(jié)點(diǎn)都會(huì)向集群里面的其他節(jié)點(diǎn)發(fā)送一個(gè)票據(jù) Vote,這個(gè)票據(jù)有三個(gè)屬性。

epoch, 邏輯時(shí)鐘,用來(lái)表示當(dāng)前票據(jù)是否過(guò)期。

zxid,事務(wù) id,表示當(dāng)前節(jié)點(diǎn)最新存儲(chǔ)的數(shù)據(jù)的事務(wù)編號(hào)

myid,服務(wù)器 id,在 myid 文件里面填寫的數(shù)字。

每個(gè)節(jié)點(diǎn)都會(huì)選自己當(dāng) Leader,所以第一次投票的時(shí)候攜帶的是當(dāng)前節(jié)點(diǎn)的信息。

接下來(lái)每個(gè)節(jié)點(diǎn)用收到的票據(jù)和自己節(jié)點(diǎn)的票據(jù)做比較,根據(jù) epoch、zxid、myid的順序逐一比較,以值最大的一方獲勝。比較結(jié)束以后這個(gè)節(jié)點(diǎn)下次再投票的時(shí)候,發(fā)送的投票請(qǐng)求就是獲勝的 Vote 信息。

圖片

然后,通過(guò)多輪投票以后,每個(gè)節(jié)點(diǎn)都會(huì)去統(tǒng)計(jì)當(dāng)前達(dá)成一致的票據(jù),以少數(shù)服從多數(shù)的方式,最終獲得票據(jù)最多的節(jié)點(diǎn)成為 Leader。

最后我再補(bǔ)充一下,為什么要選擇 epoch/zxid/myid 作為投票評(píng)判依據(jù)?我是這么理解的。

首先,epoch ,因?yàn)榫W(wǎng)絡(luò)通信延遲的可能性,有可能在新一輪的投票里面收到上一輪投票的票據(jù),這種數(shù)據(jù)應(yīng)該丟棄,否則會(huì)影響投票的結(jié)果和效率。

然后,zxid 越大,說(shuō)明這個(gè)節(jié)點(diǎn)的數(shù)據(jù)越接近 leader,所以用 zxid 做判斷條件是為了避免數(shù)據(jù)丟失的問(wèn)題

最后,myid是服務(wù)器 id,這個(gè)是避免投票時(shí)間過(guò)長(zhǎng),直接用 myid 最大值作為快速終結(jié)投票的屬性。

Leader 選舉是一個(gè)比較復(fù)雜的問(wèn)題,它涉及到集群節(jié)點(diǎn)的數(shù)據(jù)一致性算法。在很多中間件里面都有涉及到類似的問(wèn)題,這個(gè)思想其實(shí)還是很有研究?jī)r(jià)值的。除此之外,還有 Paxos、raft、等一致性算法。

以上就是我對(duì)Zookeeper選舉原理的理解。

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

2022-09-23 11:00:27

KafkaZookeeper機(jī)制

2020-06-19 15:32:56

HashMap面試代碼

2021-07-16 07:57:34

ReduxDOM組件

2022-08-14 07:14:50

Kafka零拷貝

2022-09-06 11:13:16

接口PipelineHandler

2020-08-27 08:31:11

DDD可視化模型

2022-08-26 00:02:03

RocketMQ單體架構(gòu)MQ

2023-11-28 12:25:02

多線程安全

2022-06-30 09:10:33

NoSQLHBaseRedis

2021-05-11 08:48:23

React Hooks前端

2024-09-02 16:10:19

vue2前端

2022-08-29 16:03:33

狀態(tài)流轉(zhuǎn)Java

2022-07-06 08:30:36

vuereactvdom

2019-12-26 09:15:44

網(wǎng)絡(luò)IOLinux

2022-09-19 07:57:59

云服務(wù)互聯(lián)網(wǎng)基礎(chǔ)設(shè)施

2024-09-20 05:46:00

2024-09-11 16:49:55

2019-11-28 10:45:28

ZooKeeper源碼分布式

2022-09-09 10:15:06

OAuthJava

2024-03-15 09:06:48

HTTPSCA私鑰
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 99亚洲精品| 国产精品毛片一区二区三区 | 韩国精品在线观看 | 91久久久久久久久 | 国产精品亚洲成在人线 | 国产精品久久久久久久久久久久午夜片 | 免费电影av | 国产午夜精品一区二区三区嫩草 | 日韩欧美在线不卡 | 四虎永久免费黄色影片 | 中文字幕 视频一区 | 久久综合一区 | www.久久99 | 精品一区二区久久久久久久网站 | 天天插天天操 | 欧美三区在线观看 | 国产视频中文字幕 | 久久久久免费 | 精品一区二区在线观看 | 亚洲最新在线 | 少妇淫片aaaaa毛片叫床爽 | 国产欧美一区二区久久性色99 | 国产亚洲日本精品 | 久久亚洲欧美日韩精品专区 | 日韩欧美字幕 | 国产精品久久久久9999鸭 | 一级毛片免费完整视频 | 久久不卡 | 自拍偷拍视频网 | 亚洲天堂二区 | 久久精品亚洲精品国产欧美 | h视频在线免费 | 亚洲欧美一区二区三区在线 | 精品一二三 | 日本免费视频在线观看 | 一级做a爰片久久毛片免费看 | 毛片视频观看 | 免费一级毛片 | 欧美黄色片 | 亚洲社区在线 | 亚洲高清视频在线 |