Zab系列4 zookeeper特性

特性

  • 類似于Raft系統(tǒng),zookeeper也有 log 和 狀態(tài)機的概念,zk中的狀態(tài)機是一棵內存樹。
  • zk寫的順序是 先寫到日志中保存命令,再運用到內存樹中,再返回客戶端
  • zk的讀操作不需要轉發(fā)到leader,每個Node都可以直接返回本地內存樹中的數(shù)據(jù)

一致性、容錯性

  1. zk的讀取是弱一致性+最終一致性的,任何Node(Follower、leader、observer)都可以直接處理客戶端的Query請求,而不需要去leader那confirm自己的數(shù)據(jù)是最新的。這種機制提升了讀取的性能,但是可能NodeA的數(shù)據(jù)不是最新的,客戶端讀取到的數(shù)據(jù)可能是過時的。

  2. ZK集群的容錯性要考慮到observer的情況,因為observer節(jié)點并不參與事務請求的confirm和投票選舉,所以說observer的宕機并不會影響集群的可用性。所以不能一概而論的說,zk集群半數(shù)節(jié)點不可用則集群不可用,要看掛掉的節(jié)點的角色是不是observer。

  3. ZK集群在新版本中支持配置:readonlymode.enable屬性,默認是false,如果開啟的話,節(jié)點處于異常狀態(tài),集群仍然可用,但是只能執(zhí)行讀的請求,不能寫。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容