Zookeeper 是 Google 的 Chubby一個開源的實現,是 Hadoop 的分佈式協調服務
Zookeeper的角色
領導者(leader),負責進行投票的發起和決議,更新系統狀態
學習者(learner),包括跟隨者(follower)和觀察者(observer),follower用於接受客戶端請求並想客戶端返回結
果,在選主過程中參與投票
Observer可以接受客戶端連接,將寫請求轉發給leader,但observer不參加投票過程,只同步leader的狀
態,observer的目的是爲了擴展系統,提高讀取速度
客戶端(client),請求發起方
Zookeeper的數據模型
層次化的目錄結構,命名符合常規文件系統規範
每個節點在zookeeper中叫做znode,並且其有一個唯一的路徑標識
節點Znode可以包含數據和子節點,但是EPHEMERAL類型的節點不能有子節點
Znode中的數據可以有多個版本,比如某一個路徑下存有多個數據版本,那麼查詢這個路徑下的數據就需要帶上版本
客戶端應用可以在節點上設置監視器
節點不支持部分讀寫,而是一次性完整讀寫
Zookeeper的節點
Znode有兩種類型,短暫的(ephemeral)和持久的(persistent)
Znode的類型在創建時確定並且之後不能再修改
短暫znode的客戶端會話結束時,zookeeper會將該短暫znode刪除,短暫znode不可以有子節點
持久znode不依賴於客戶端會話,只有當客戶端明確要刪除該持久znode時纔會被刪除
Znode有四種形式的目錄節點,PERSISTENT(持久)、PERSISTENT_SEQUENTIAL(持久有序)、
EPHEMERAL(短暫)、
EPHEMERAL_SEQUENTIAL(短暫有序)
未完待續。。。