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