Zookeeper學習筆記

Zookeeper簡介

Zookeeper是一個開源的,針對大型分佈式系統的可靠協調系統。提供的功能包括:發佈/訂閱、分佈式協調\通知、配置管理、集羣管理、主從協調、分佈式鎖等。

Zookeeper的特性

1、最終一致性

    保證最終數據能夠達到一致,是zookeeper的最重要功能。

2、順序性

  從同一客戶端發起的事務請求,最終會嚴格地按照其發送順序被應用到zookeeper中。

3、可靠性

  一旦服務器成功的應用一個事務,並完成了客戶端的響應,那麼該事務所引起的服務端狀態變更將會被一直保留下去。

4、實時性

   zookeeper不能保證兩個客戶端能同時得到剛更新的數據,如果需要最新數據,應該在讀數據之前調用sync()接口。

5、原子性

  一次數據更新要麼成功,要麼失敗。

6、單一視圖

  無論客戶端連接到哪個服務器,看到的數據模型都是一致的。

zookeeper角色

Leader:更新系統狀態,處理事務請求,負責進行投票的發起和決議。
Follower:處理客戶端非事務請求並向客戶端返回結果,將寫事務請求轉發給Leader,同步Leader的狀態,選主過程中參與投票。
Observer:接收客戶端讀請求,將客戶端寫請求轉發給Leader,不參與投票過程,只同步Leader的狀態。目的是爲了擴展系統,提高了讀取速度。

Client:請求發起方

zookeeper的寫入

1、數據寫入最終一致核心算法ZAB算法。
2、Leader負責處理寫事務請求。

3、Follower負責向Leader轉發寫請求,響應Leader發出的提議

zookeeper選舉

服務器四種狀態

LOOKING:尋找Leader狀態,處於該狀態需要進入選舉流程。
LEADING:領導者狀態,表明當前服務角色爲Leader
FOLLOWING:跟隨者狀態,Leader已經選舉出來,表明當前服務角色爲Follower

OBSERVER:觀察者狀態,表明當前服務角色Observer

 事務ID:用ZXID表示,是一個64位的數字,由Leader統一分配,全局唯一,不斷遞增。

zookeeper選舉流程

一、全新啓動

1、每個Server發出一個投票,內容爲(myid,ZXID)
2、接收來自各個Server的投票
3、處理投票
4、統計投票

5、改變服務器狀態

二、運行期間

1、所有Server切換狀態爲LOOKING,每個Server發出一個投票,內容爲(myid,ZXID)
2、接收來自各個Server的投票。
3、處理投票
4、統計投票

5、改來服務器狀態

Znode節點類型
一、節點類型
持久節點(PERSISTENT)
臨時節點(EPHEMERAL)
順序節點(SEQUENTIAL)
二、組合節點類型
持久節點        (PERSISTENT)
持久順序節點 (PERSISTENT_SEQUENTIAL)
臨時節點        (EPHEMERAL)
臨時順序節點 (EPHEMERAL_SEQUENTIAL)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章