zookeeper的设计猜想-集群组成
通常zookeeper是由2n+1臺server組成,每個server都知道彼此的存在。每個server都維護的內(nèi)存狀態(tài)鏡像以及持久化存儲的事務(wù)日志和快照。對于2n+1臺server,只要有n+1臺(大多數(shù))server可用,整個系統(tǒng)保持可用。我們已經(jīng)了解到,一個zookeeper集群如果要對外提供可用的服務(wù),那么集群中必須要有過半的機器正常工作并且彼此之間能夠正常通信,基于這個特性,如果向搭建一個能夠允許F臺機器down掉的集群,那么就要部署2*F+1臺服務(wù)器構(gòu)成的zookeeper集群。因此3臺機器構(gòu)成的zookeeper集群,能夠在掛掉一臺機器后依然正常工作。一個5臺機器集群的服務(wù),能夠?qū)?臺機器怪調(diào)的情況下進行容災(zāi)。如果一臺由6臺服務(wù)構(gòu)成的集群,同樣只能掛掉2臺機器。因此,5臺和6臺在容災(zāi)能力上并沒有明顯優(yōu)勢,反而增加了網(wǎng)絡(luò)通信負擔(dān)。系統(tǒng)啟動時,集群中的server會選舉出一臺server為Leader,其它的就作為follower(這里先不考慮
observer角色)。
之所以要滿足這樣一個等式,是因為一個節(jié)點要成為集群中的leader,需要有超過及群眾過半數(shù)的節(jié)點支持,這個涉及到leader選舉算法。同時也涉及到事務(wù)請求的提交投票
?
總結(jié)
以上是生活随笔為你收集整理的zookeeper的设计猜想-集群组成的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zookeeper的设计猜想-leade
- 下一篇: zookeeper的名词复盘-集群角色