一、Zookeeper數據類型:層次化目錄結構+少許數據node
Zookeeper包含層次化的目錄結構,每一個Znode都有惟一的路徑標識,Znode能夠包含數據和子節點。服務器
其中Znode數據能夠有多個版本,若該路徑下包含多個數據版本,查詢這個路徑下的數據時,須要帶上版本。server
二、Zookeeper節點類型:臨時節點(ephemeral)、持久節點(persistent)、順序節點(sequence)。節點類型在建立時肯定,以後不可修改。生命週期
(1)臨時節點在客戶端會話結束後,zookeeper會將該臨時節點刪除,且臨時節點不可有子節點。事務
(2)持久節點不依賴於客戶端的會話,只有客戶端明確要刪除該持久節點,纔會將其刪除。同步
也能夠說是四種:class
(1)PERSISTENT-持久節點除非手動刪除,不然節點一直存在於 Zookeeper 上監控
(2)EPHEMERAL-臨時節點臨時節點的生命週期與客戶端會話綁定,一旦客戶端會話失效(客戶端與zookeeper 鏈接斷開不必定會話失效),那麼這個客戶端建立的全部臨時節點都會被移除。cli
(3)PERSISTENT_SEQUENTIAL-持久順序節點基本特性同持久節點,只是增長了順序屬性,節點名後邊會追加一個由父節點維護的自增整型數字。zookeeper
(4)EPHEMERAL_SEQUENTIAL-臨時順序節點基本特性同臨時節點,增長了順序屬性,節點名後邊會追加一個由父節點維護的自增整型數字。
三、Zookeeper角色:leader領導者、follower跟隨者、observer觀察者、client客戶端
(1)leader:負責投票的發起和決議,更新系統狀態,處理事務請求。
(2)follower跟隨者:參與投票,接收客戶端請求,處理非事務請求並返回結果,轉發事務請求給leader。
(3)observer觀察者:不參與投票過程,只同步leader狀態,爲了擴展系統,提升讀寫速度。也接收客戶端請求,處理非事務請求並返回結果,轉發事務請求給leader。
(4)client客戶端:請求發起方。
四、Watcher監聽機制:
(1)監控目錄節點數據變化
(2)監控子目錄變化
(3)一旦這些節點發生變化,服務器就會通知全部設置在這個目錄節點上的Watcher,使得每一個客戶端都很快知道其關注的目錄節點的狀態發生變化,從而作出相應反應。
節點類型和Watcher監聽機制,是解決全部應用場景問題的出發點和落腳點。