您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“zookeeper的基本原理介紹”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
基本原理
server很多,有主從之分,不過有一個(gè)leader,其他是follower,
每個(gè)server,在內(nèi)存中存有一份數(shù)據(jù),啟動(dòng)時(shí),將選舉出一個(gè)leader,根據(jù)paxos協(xié)議選舉
leader負(fù)責(zé)處理數(shù)據(jù)更新操作,用到zab協(xié)議
一個(gè)更新操作成功的標(biāo)志,大多數(shù)server在內(nèi)存,成功修改數(shù)據(jù)(一個(gè)有5個(gè),有3個(gè)寫成功了)
zookeeper角色
怎么知道大多數(shù)寫成功了,用到領(lǐng)導(dǎo)者發(fā)起投票,領(lǐng)導(dǎo)者收到3個(gè)投票,就是大部分寫成功了。
學(xué)習(xí)者(learner)分為跟隨者(follower),觀察者(ObServer)
高可用,比如兩個(gè)節(jié)點(diǎn)掛了,還是可以對(duì)外提供服務(wù),為了支持更多客戶端,需要增加server
server增多,會(huì)導(dǎo)致投票延遲增大,因?yàn)橥镀毙枰霐?shù)以上的投票成功,才認(rèn)為是成功的
假設(shè)其中一個(gè)Server比較磨嘰慢網(wǎng)絡(luò)慢,zookeeper會(huì)權(quán)衡伸縮性和吞吐率,引入了一個(gè)observer
好處(1)不參與投票過程,只同步領(lǐng)導(dǎo)者狀態(tài),接收client連接,請(qǐng)求轉(zhuǎn)發(fā)給領(lǐng)導(dǎo)者,這樣follower跟領(lǐng)導(dǎo)者連接就少了,這樣就不會(huì)影響,因?yàn)楦卟l(fā),負(fù)載過高而掛掉,所以說observer可以分擔(dān)一部分壓力(2)當(dāng)加入更多的observer之后,可以提gao整個(gè)zookeeper的伸縮性,還不影響吞吐率。
leader選舉算法采用了paxos協(xié)議。
paxos核心思想是當(dāng)多數(shù)server寫成功,則任務(wù)數(shù)據(jù)寫成功。
1)如果有3個(gè)server,則需要兩個(gè)寫成功即表示任務(wù)數(shù)據(jù)寫成功。
2)如果有4個(gè)或5個(gè)server,則需要三個(gè)寫成功即表示任務(wù)數(shù)據(jù)寫成功。
server數(shù)目一般為奇數(shù)個(gè),例如3,5,7等等,
1)如果有3個(gè)server,則最多允許1個(gè)server掛掉。(有兩個(gè)寫成功,表示成功)
2)如果有4個(gè)server,則同樣最多允許1個(gè)server掛掉(有三個(gè)寫成功,表示成功)
client給server發(fā)送請(qǐng)求,如果server1不是leader,server1會(huì)把請(qǐng)求轉(zhuǎn)發(fā)給leader,leader會(huì)將請(qǐng)求廣播給各個(gè)server,各個(gè)server寫成功后,通知leader,當(dāng)收到大多數(shù)server通知成功,表示寫成功了
“zookeeper的基本原理介紹”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。