Zookeeper-節點

定義

       Zookeeper的視圖結構和標準的Unix文件系統類似,其中每個節點稱爲數據節點或Znode,每個znode可以存儲數據,還可以掛載子節點,因此可以稱之爲“樹”。

特性

1、在Zookeeper中,znode是一個跟Unix文件系統路徑相似的節點,可以往這個節點存儲或獲取數據

2、通過客戶端可對znode進行增刪改查的操作,還可以註冊watcher監控znode的變化。

節點類型

1、持久節點(PERSISTENT)

客戶端與服務端端口連接後,該節點依然存在,除非快照文件被刪除。

下圖中,創建了持久化節點water。

2、持久化順序節點(PERSISTENT_SEQUENTIAL)

客戶端與zookeeper斷開連接後,該節點依舊存在,只是Zookeeper給該節點名稱進行順序編號。

在下圖中,創建了water的持久順序節點,Zookeeper自動給節點添加了序列號,最後節點爲water0000000006。

同時我們看屬性ephemeralOwner是空值,表明該節點爲持久化節點。

3、臨時節點(EPHEMERAL)

客戶端與zookeeper斷開連接後,該節點被刪除。

在下圖中,在持久化節點water下創建臨時節點aaa。我們發現ephemeralOwner屬性不爲空值,表明該節點爲臨時節點。

4、臨時順序節點(EPHEMERAL_SEQUENTIAL)

客戶端與zookeeper斷開連接後,該節點被刪除,只是Zookeeper給該節點名稱進行順序編號。

下圖中,創建臨時節點bbb,系統自動帶上了學列號。

注意:臨時下不能再創建子節點

在下圖中,我們嘗試在臨時節點/water/aaa下創建節點ccc,系統提示不允許在臨時節點下創建節點。

節點屬性

序號

屬性

數據結構

描述

1

czxid

long

節點被創建的Zxid

2

mzxid

long

節點被修改的Zxid

3

pzxid

long

子節點最有一次被修改時的事務ID

4

ctime

long

節點被創建的時間

5

mtime

long

節點最後一次被修改的時間

6

versoin

long

節點被修改的版本號,

7

cversion

long

節點的所擁有子節點被修改的版本號

8

aversion

long

節點的ACL被修改的版本號

9

emphemeralOwner

long

如果此節點爲臨時節點,那麼它的值爲這個節點擁有者的會話ID;否則,它的值爲0

10

dataLength

int

節點數據域的長度

11

numChildren

int

節點擁有的子節點個數

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