《Zookeeper中間件》Zookeeper命令詳解

前言

使用Zookeeper之前,先了解一下Zookeeper是啥?有什麼作用?

原理

Zookeeper本身是一種存儲數據的樹結構,結構和文件系統非常相似,區別是Zookeeper的節點都可以存值。

通過Zookeeper命令演示一下這個結構:

create /hubt    -- 創建節點

ls /      -- 查詢/節點下面的節點情況

stat /tao     -- 查看節點的屬性

cZxid:這是導致創建znode更改的事務ID。

ctime:表示從1970-01-01T00:00:00Z開始以毫秒爲單位的znode創建時間。

mZxid:這是最後修改znode更改的事務ID。

mtime:表示從1970-01-01T00:00:00Z開始以毫秒爲單位的znode最近修改時間。

pZxid:這是用於添加或刪除子節點的znode更改的事務ID。

dataVersion:表示對該znode的數據所做的更改次數。

cversion:這表示對此znode的子節點進行的更改次數。

aclVersion:表示對此znode的ACL進行更改的次數。

ephemeralOwner:如果znode是臨時類型節點,則這是znode所有者的 session ID。 如果znode不是臨時節點,則該字段設置爲零。

dataLength:這是znode數據字段的長度。

numChildren:這表示znode的子節點的數量。

create /hubt/data 888   -- 創建節點並且存值
get /hubt/data   -- 獲取節點上的值。

set /hubt/data 999    -- 修改節點的值
delete /hubt/data    -- 刪除某個節點,節點下面不能有節點
deleteall /hubt    -- 刪除節點/hubt 和節點下面的全部節點

創建順序節點

create -s /com_     -- 創建順序節點

create -e /tmp   --創建臨時節點,退出連接節點就會消失,但是在沒有消失之前其他連接也是可以看到這個節點的

create -es /tmps    -- 創建臨時順序節點

create -c /container   -- 創建容器節點

容器節點裏面的的最後一個幾點刪除之後,會自動消失。

create -t 3000 /tt   -- 創建過期節點,3000毫秒不操作就刪除。

該命令默認是關閉的,需要設置啓動參數才能打開。

zkServer.sh 啓動文件中加上下圖的紅色標註的話:

"-Dzookeeper.extendedTypesEnabled=true"
create -t 5000 -s /yy    -- 創建順序過期節點

總結

zookeeper 的命令操作不多,比較簡單。節點類型有:

持久節點,所謂持久節點,是指在節點創建後,就一直存在,直到有刪除操作來主動清除這個節點。

臨時節點,和持久節點不同的是,臨時節點的生命週期和客戶端會話綁定。也就是說,如果客戶端會話失效,那麼這個節點就會自動被清除掉。注意,這裏提到的是會話失效,而非連接斷開。另外,在臨時節點下面不能創建子節點。

持久順序節點,這類節點的基本特性和持久節點是一致的。額外的特性是,在ZK中,每個父節點會爲他的第一級子節點維護一份時序,會記錄每個子節點創建的先後順序。基於這個特性,在創建子節點的時候,可以設置這個屬性,那麼在創建節點過程中,ZK會自動爲給定節點名加上一個數字後綴,作爲新的節點名。這個數字後綴的範圍是整型的最大值。

臨時順序節點,類似臨時節點和順序節點

容器節點:容器節點下面的節點被刪除完,容器節點自動刪除。

容器順序節點:容器節點增加了順序功能。

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