自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大數(shù)據(jù)學(xué)習(xí):ZooKeeper工作原理

大數(shù)據(jù)
在大數(shù)據(jù)學(xué)習(xí)中,ZooKeeper扮演了十分重要的角色。ZooKeeper 提供了一套很好的分布式集群管理的機(jī)制,從而可以設(shè)計(jì)出多種多樣的分布式的數(shù)據(jù)管理模型。在ZooKeeper的基本功能中工作原理及工作流程也是主要部分。

 在大數(shù)據(jù)生態(tài)當(dāng)中,分布式集群當(dāng)中的一個(gè)重要組件,就是Zookeeper,作為集群運(yùn)行的重要管理者,正如其名字“動物園管理員”所示,負(fù)責(zé)集群運(yùn)行的諸多事宜。今天的大數(shù)據(jù)學(xué)習(xí)分享,我們就來具體講講,ZooKeeper工作原理。

在Zookeeper的工作流程當(dāng)中,各個(gè)節(jié)點(diǎn)當(dāng)中,主要涉及到三個(gè)角色和四種狀態(tài),這也是構(gòu)成Zookeeper體系架構(gòu)的重要組成部分。

ZooKeeper角色和狀態(tài)

角色:Leader,F(xiàn)ollower,Observer。

狀態(tài):Leading,F(xiàn)ollowing,Observing,Looking。

Looking:當(dāng)前Server不知道Leader是誰,正在搜尋。

Leading:當(dāng)前Server即為選舉出來的Leader。

Following:Leader已經(jīng)選舉出來,當(dāng)前Server與之同步。

Observing:Observer的行為在大多數(shù)情況下與Follower完全一致,但是他們不參加選舉和投票,而僅僅接受(observing)選舉和投票的結(jié)果。

Zookeeper工作流程

Leader Election

當(dāng)Leader崩潰或者Leader失去大多數(shù)的Follower,這時(shí)候ZK進(jìn)入恢復(fù)模式,恢復(fù)模式需要重新選舉出一個(gè)新的Leader,讓所有的Server都恢復(fù)到一個(gè)正確的狀態(tài)。

Zk的選舉算法有兩種:一種是基于Basic paxos實(shí)現(xiàn)的,另外一種是基于Fast paxos算法實(shí)現(xiàn)的。

系統(tǒng)默認(rèn)的選舉算法為Fast paxos。

Fast paxos流程是在選舉過程中,某Server首先向所有Server提議自己要成為Leader,當(dāng)其它Server收到提議以后,解決epoch和zxid的沖突,并接受對方的提議,然后向?qū)Ψ桨l(fā)送接受提議完成的消息,重復(fù)這個(gè)流程,最后一定能選舉出Leader。

Leader工作流程

Leader主要有三個(gè)功能:
恢復(fù)數(shù)據(jù);
維持與Follower的心跳,接收Follower請求并判斷Follower的請求消息類型;
Follower的消息類型主要有PING消息、REQUEST消息、ACK消息、REVALIDATE消息,根據(jù)不同的消息類型,進(jìn)行不同的處理。

Follower主要有四個(gè)功能:
向Leader發(fā)送請求(PING消息、REQUEST消息、ACK消息、REVALIDATE消息);
接收Leader消息并進(jìn)行處理;
接收Client的請求,如果為寫請求,發(fā)送給Leader進(jìn)行投票;
返回Client結(jié)果。

Follower的消息循環(huán)處理如下幾種來自Leader的消息:
PING消息:心跳消息
PROPOSAL消息:Leader發(fā)起的提案,要求Follower投票
COMMIT消息:服務(wù)器端最新一次提案的信息
UPTODATE消息:表明同步完成
REVALIDATE消息:根據(jù)Leader的REVALIDATE結(jié)果,關(guān)閉待revalidate的session還是允許其接受消息
SYNC消息:返回SYNC結(jié)果到客戶端,這個(gè)消息最初由客戶端發(fā)起,用來強(qiáng)制得到最新的更新。

Zab協(xié)議(ZooKeeper Atomic Broadcast protocol)

Zookeeper的核心是原子廣播,這個(gè)機(jī)制保證了各個(gè)Server之間的同步。Zab協(xié)議有兩種模式,它們分別是恢復(fù)模式(Recovery選主)和廣播模式(Broadcast同步)。

當(dāng)服務(wù)啟動或者在領(lǐng)導(dǎo)者崩潰后,Zab就進(jìn)入了恢復(fù)模式,當(dāng)領(lǐng)導(dǎo)者被選舉出來,且大多數(shù)Server完成了和Leader的狀態(tài)同步以后,恢復(fù)模式就結(jié)束了。狀態(tài)同步保證了Leader和Server具有相同的系統(tǒng)狀態(tài)。

為了保證事務(wù)的順序一致性,zookeeper采用了遞增的事務(wù)id號(zxid)來標(biāo)識事務(wù)。所有的提議(proposal)都在被提出的時(shí)候加上了zxid。

實(shí)現(xiàn)中zxid是一個(gè)64位的數(shù)字,它高32位是epoch用來標(biāo)識Leader關(guān)系是否改變,每次一個(gè)Leader被選出來,它都會有一個(gè)新的epoch,標(biāo)識當(dāng)前屬于那個(gè)Leader的統(tǒng)治時(shí)期。低32位用于遞增計(jì)數(shù)。
 

 

責(zé)任編輯:梁菲 來源: 加米谷大數(shù)據(jù)
相關(guān)推薦

2020-12-04 14:31:45

大數(shù)據(jù)Spark

2020-05-19 09:11:20

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

2020-06-19 07:59:35

人工智能

2021-05-08 23:26:32

大數(shù)據(jù)薪資工作

2018-01-02 13:25:00

國稅大數(shù)據(jù)監(jiān)督平臺

2016-12-12 08:48:24

2019-12-25 14:20:01

Zookeeper框架大數(shù)據(jù)

2021-08-26 08:03:30

大數(shù)據(jù)Zookeeper選舉

2020-09-29 16:48:13

大數(shù)據(jù)IT技術(shù)

2009-06-18 13:31:03

Spring工作原理

2018-12-07 14:59:37

2009-08-14 13:19:23

2021-01-29 10:07:31

大數(shù)據(jù)大數(shù)據(jù)技術(shù)

2017-11-30 15:17:47

大數(shù)據(jù)云時(shí)代公安機(jī)關(guān)

2022-01-07 09:50:51

大數(shù)據(jù)信息應(yīng)用

2014-07-16 09:46:56

大數(shù)據(jù)

2017-04-26 13:18:35

大數(shù)據(jù)數(shù)據(jù)科學(xué)人工智能

2018-09-18 15:57:44

機(jī)器學(xué)習(xí)ML神經(jīng)網(wǎng)絡(luò)

2021-04-28 10:13:58

zookeeperZNode核心原理

2011-05-20 15:45:52

數(shù)據(jù)集
點(diǎn)贊
收藏

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