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