首頁 >常見問題 >ZooKeeper是什麼?

ZooKeeper是什麼?

Guanhui
Guanhui原創
2020-06-24 17:06:284958瀏覽

ZooKeeper是一個開源的分散式協調器,是一個典型的分散式資料一致性解決方案,其設計目的是將複雜且容易出錯的分散式一致性服務封裝起來,構成一個高效可靠的系統,並以一系列簡單易用的原子操作提供給使用者使用。

ZooKeeper是什麼?

ZooKeeper 主要特性

zookeeper本身就是分散式程序,只要半數以上節點存活,zookeeper就能正常服務。

為了確保高可用,通常以叢集的形態來部署zookeeper,這樣只要叢集中大部分機器可用,那麼zookeeper本身就可用。

zookeeper將資料保存在記憶體中,這保證了高吞吐和低延遲

zookeeper是高效能的,在讀多於寫的程式中尤其的高效能,因為寫會導致所有伺服器間同步狀態。

zookeeper有臨時節點概念。當建立臨時節點的客戶端會話保持活動,臨時節點就一直存在。而當會話終結時,臨時節點就被刪除了。

zookeeper底層只提供了兩個功能。 1 管理使用者程式提交的數據, 2 為使用者程式提交的資料節點提供監聽服務。

ZooKeeper 特點

ZooKeeper是以Fast Paxos演算法為基礎的,Paxos 演算法存在活鎖的問題,即當有多個proposer交錯提交時,有可能互相排斥導致沒有一個proposer能提交成功,而Fast Paxos作了一些優化,透過選舉產生一個leader (領導者),只有leader才能提交proposer,具體演算法可見Fast Paxos。因此,要弄清楚ZooKeeper首先得對Fast Paxos有所了解。 [2] 

ZooKeeper的基本運作流程:

#1、選舉Leader。

2、同步資料。

3、選舉Leader過程中演算法很多,但要達到的選舉標準是一致的。

4、Leader要具有最高的執行ID,類似root權限。

5、叢集中大多數的機器得到回應並接受選出的Leader。

推薦教學:《PHP

以上是ZooKeeper是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn