1. 程式人生 > >Zookeeper的簡單理解

Zookeeper的簡單理解

zookeeper介紹

Zookeeper主要用於解決分散式資料一致性。

分散式資料一致性的相關理論,詳情見 : https://www.cnblogs.com/expiator/p/9760231.html

zookeeper構成

1.會話(Session):

zookeeper的服務埠是2181。客戶端啟動時,首先會與伺服器建立一個TCP長連線,連線建立後,會話開始。

通過這個連線,客戶端能夠通過心跳機制與伺服器保持有效會話,也能夠向zookeeper伺服器傳送請求並接受響應,同時還能接收來自zookeeper伺服器的Watch(監聽)事件通知 。

2.zookeeper具有樹型結構的資料模型,具有很多資料節點。

3.資料節點(Znode):

zookeeper每個資料節點都可以儲存資料,節點還可以建立子節點。

資料節點分為持久節點和臨時節點。每個資料節點都有版本記錄。

4.事件監聽器(Watcher):

zk允許使用者在指定資料節點註冊一些Watcher,在節點或儲存的資料發生變化時,客戶端可以收到通知 。

5.ACL(Access Control Lists):

zk採用ACL策略來進行許可權控制。許可權包括對節點的增刪改查。

6.zookeeper並沒直接採用Paxos演算法 。而是基於ZAB的一致性協議。

 

 

zookeeper應用

.1.在分散式服務框架Dubbo中,zookeeper可以作為註冊中心。這是最常見的用法。

2.分散式訊息中介軟體kafka,藉助zookeeper,kafka能夠建立生產者和消費者之間的訂閱關係,並實現負載均衡。

3.在大資料生態圈Hadoop、Hbase中都有應用zookeeper。

zookeeper叢集

1.zk可以構建叢集。一個zk叢集由多臺伺服器上的zk組成。

 

Leader選舉

1..zk叢集並沒有使用常見的Master/Slave模式(主從模式),而是引入Leader、Follower、Observer角色。

  • Leader:提供讀和寫功能。
  • Follower:提供讀服務。
  • Observer:提供讀服務。不參考Leader選舉。

2.多臺伺服器通過Leader選舉選出Leader。