Zookeeper官方文檔學習筆記

Zookeeper是一個爲分佈式應用服務的分佈式協作服務:

應用程序可以使用它的服務來同步,維護配置,分組和命名

設計目標:

  • 簡潔:分佈式程序可以通過namespace協作,zookeeper的數據是存在內存中的,所以可以實現高吞吐和低冗餘
  • 重複:zookeeper在一組主機(ensemble)上被複制
    這裏寫圖片描述
    這些server彼此知道,Clients連在Server上,並維持一個TCP連接:發送請求、接受迴應、查看事件、發送心跳。如果一個server掉線,它的Clients會連接到別的Servers
  • 有序:每個zookeeper stamp更新一個代表所有交易順序的數字
  • 快速:zookeeper在讀取:寫入速率 = 10:1時最快

樹狀結構:

每個節點是一個znode,由路徑標識
Znode維護了數據變更的版本號,ACL變化,時間戳
Znode裏的數據自動讀寫,讀時會獲取到所有的數據,寫時會替換所有的數據
臨時節點隨session創建和銷燬

update和watch:

客戶端可以watch znodes,當znode改變時watch會被觸發和移除

APIs:

  • create:在樹中創建一個節點
  • delete:刪除一個節點
  • exists:測試一個節點在某地是否存在
  • get data:從一個node獲取數據
  • set data:給node寫數據
  • get children:獲取一個節點的子節點
  • sync:等待數據propagate

這裏寫圖片描述
Replicated Database是一個在內存中幷包括整棵樹的數據庫,更新會寫入disk,寫入也會在存入內存數據庫之前序列化到disk

性能調優:

這裏寫圖片描述
多讀少寫!

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