日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
詳解Zookeeper選取機(jī)制

Zookeeper 是一個(gè)分布式服務(wù)框架,主要是用來解決分布式應(yīng)用中遇到的一些數(shù)據(jù)管理問題如:統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置項(xiàng)的管理等。我們可以簡(jiǎn)單把 Zookeeper 理解為分布式家庭的大管家,那么管家團(tuán)隊(duì)是如何選出Leader的呢?下面為大家詳細(xì)講解一下Zookeeper選取機(jī)制。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),湯旺企業(yè)網(wǎng)站建設(shè),湯旺品牌網(wǎng)站建設(shè),網(wǎng)站定制,湯旺網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,湯旺網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

zookeeper節(jié)點(diǎn)的4種狀態(tài):

LEADING:說明此節(jié)點(diǎn)已經(jīng)是leader節(jié)點(diǎn),處于領(lǐng)導(dǎo)者地位的狀態(tài),差不多就是一般集群中的master。但在zookeeper中,只有l(wèi)eader才有寫權(quán)限,其他節(jié)點(diǎn)(FOLLOWING)是沒有寫權(quán)限的,可以讀

LOOKING:選舉中,正在尋找leader,即將進(jìn)入leader選舉流程中

FOLLOWING:跟隨者,表示當(dāng)前集群中的leader已經(jīng)選舉出來了,主要具備以下幾個(gè)功能點(diǎn)

? 向leader發(fā)送請(qǐng)求(PING消息、REQUEST消息、ACK消息、REVALIDATE消息)

? 接收leader消息并進(jìn)行處理;

? 接收client發(fā)送過來的請(qǐng)求,如果為寫請(qǐng)求,會(huì)發(fā)送給Leader進(jìn)行投票處理,然后返回client結(jié)果。

OBSERVING:OBSERVING和FOLLOWING差不多,但不參加投票和選舉,接受leader選舉后的結(jié)果

選舉過程:

假如有以下5臺(tái)機(jī)器server1、server2、server3、server4、server5 圖是網(wǎng)上扒的

img

每個(gè)server 自身都有一票,在初始化或者server崩潰數(shù)過半的時(shí)候,每個(gè)server都有一個(gè)自身的myid(zookeeper配置文件),這里按1、2、3、4、5算

在選舉過程中主要是依據(jù)zxid和myid來進(jìn)行輪訓(xùn)server然后比較統(tǒng)計(jì)投票

zxid (ZooKeeper Transaction Id,每次請(qǐng)求對(duì)應(yīng)一個(gè)唯一的zxid,如果zxid a

選舉分為兩種情況,初始化和leader掛掉的時(shí)候,要進(jìn)行l(wèi)eader選舉,至少需要2臺(tái)機(jī)器,集群機(jī)器臺(tái)數(shù)基本是奇數(shù)

初始化

當(dāng)啟動(dòng)初始化集群的時(shí)候,server1的myid為1,zxid為0 server2的myid為2,zxid同樣是0,以此類推。此種情況下zxid都是為0。先比較zxid,再比較myid

  • 服務(wù)器1啟動(dòng),給自己投票,然后發(fā)投票信息,由于其它機(jī)器還沒有啟動(dòng)所以它收不到反饋信息,服務(wù)器1的狀態(tài)一直屬于Looking(選舉狀態(tài))。
  • 服務(wù)器2啟動(dòng),給自己投票,同時(shí)與之前啟動(dòng)的服務(wù)器1交換結(jié)果,由于服務(wù)器2的myid大所以服務(wù)器2勝出,但此時(shí)投票數(shù)沒有大于半數(shù),所以兩個(gè)服務(wù)器的狀態(tài)依然是LOOKING。
  • 服務(wù)器3啟動(dòng),給自己投票,同時(shí)與之前啟動(dòng)的服務(wù)器1,2交換信息,由于服務(wù)器3的myid最大所以服務(wù)器3勝出,此時(shí)投票數(shù)正好大于半數(shù),所以服務(wù)器3成為領(lǐng)導(dǎo)者,服務(wù)器1,2成為小弟。
  • 服務(wù)器4啟動(dòng),給自己投票,同時(shí)與之前啟動(dòng)的服務(wù)器1,2,3交換信息,盡管服務(wù)器4的myid大,但之前服務(wù)器3已經(jīng)勝出,所以服務(wù)器4只能成為小弟。
  • 服務(wù)器5啟動(dòng),后面的邏輯同服務(wù)器4成為小弟

當(dāng)選舉機(jī)器過半的時(shí)候,已經(jīng)選舉出leader后,后面的就跟隨已經(jīng)選出的leader,所以4和5跟隨成為leader的server3

所以,在初始化的時(shí)候,一般到過半的機(jī)器數(shù)的時(shí)候誰的myid最大一般就是leader

運(yùn)行期間

按照上述初始化的情況,server3成為了leader,在運(yùn)行期間處于leader的server3掛了,那么非Observer服務(wù)器server1、server2、server4、server5會(huì)將自己的節(jié)點(diǎn)狀態(tài)變?yōu)長(zhǎng)OOKING狀態(tài)

1、開始進(jìn)行l(wèi)eader選舉?,F(xiàn)在選舉同樣是根據(jù)myid和zxid來進(jìn)行

2、首先每個(gè)server都會(huì)給自己投一票競(jìng)選leader。假設(shè)server1的zxid為123,server2的zxid為124,server4的zxid為169,server5的zxid為188

3、同樣先是比較zxid再比較,server1、server2、server4比較server4根據(jù)優(yōu)先條件選舉為leader。然后server5還是跟隨server4,即使server5的zxid最大,但是當(dāng)選舉到server4的時(shí)候,機(jī)器數(shù)已經(jīng)過半。不再進(jìn)行選舉,跟隨已經(jīng)選舉的leader

zookeeper集群為保證數(shù)據(jù)的一致性所有的操作都是由leader完成,之后再由leader同步給follower。重點(diǎn)就在這兒,zookeeper并不會(huì)確保所有節(jié)點(diǎn)都同步完數(shù)據(jù),只要有大多數(shù)節(jié)點(diǎn)(即n/2+1)同步成功即可。

咱們假設(shè)有一個(gè)寫操作成功那么現(xiàn)在數(shù)據(jù)只存在于節(jié)點(diǎn)leader,之后leader再同步給其他follower。這時(shí)候宕掉3個(gè)機(jī)器,已經(jīng)過半的機(jī)器無法進(jìn)行投票選舉,剩余2臺(tái)不足過半,無法選舉=無法提供任何服務(wù)。再啟動(dòng)一個(gè)機(jī)器恢復(fù)服務(wù)。所以宕掉的機(jī)器不要過半,過半就會(huì)導(dǎo)致無法正常服務(wù)。

在leader選舉的時(shí)候會(huì)有30s-120s的過程,在這期間也是無法提供服務(wù)的。如果用zookeeper要作為服務(wù)發(fā)現(xiàn)是個(gè)弊端,基本無法忍受,zookeeper本身是一個(gè)CP系統(tǒng),保證數(shù)據(jù)的一致性,在恢復(fù)的時(shí)候再提供服務(wù),并沒有多好高可用的方案。如果leader發(fā)生故障選舉時(shí)無法提供服務(wù)發(fā)現(xiàn)對(duì)一個(gè)大型應(yīng)用來說可能是致命的。它可以為同在一個(gè)分布式系統(tǒng)中的其他服務(wù)提供:統(tǒng)一命名服務(wù)、配置管理、分布式鎖服務(wù)、集群管理等功能)是個(gè)偉大的開源項(xiàng)目,很成熟


當(dāng)前題目:詳解Zookeeper選取機(jī)制
瀏覽地址:http://www.5511xx.com/article/cocshis.html