Zookeeper能保證global order,因為只有leader能處理寫入要求。Zookeeper在partition發生時仍能維持服務,因為採用了Quorum。所以Zookeeper基本上是偏向CA的分散式系統。
所謂Quorum是指成員數達到最低投票門檻的成員集合。Zookeeper成員有兩者角色,Leader或Follower,一個Quroum裡最多只能有一個Leader,其他都是支持此Leader的Followers。Leader Election的目的就是要選出Quorum中的Leader。
一個Quorum的成員數達到最低投票門檻,一般來說,是指成員數要大於Zookeeper節點的一半數量。比方說總共開了5個Zookeeper節點,Quorum裡最少要有三個成員(3>2.5)。這樣保證了,當叢集被partition成兩半,其中一個partition的節點數是不足以形成Quorum的。若不足以形成Quorum,就不允許對外服務。因此叢集中最多只有一個Quorum可以對外服務,就不會發生inconsistency的狀況。