zookeeper基本操作命令

1、數據模型

zk的數據模型類似於文件系統,每個節點(znode)可以認爲是一個文件夾,每個節點下面還可以掛多個子節點,
從而構成一個有層次化的樹形結構。不同的是我們每個節點是可以保存數據的

2、節點分類

持久化節點:節點創建後會一直存在zk服務器上,直到主動刪除。

持久化有序節點:每個節點都會爲它的子節點維護一個順序編號。

臨時節點:臨時節點的生命週期和客戶端會話保持一致,客戶端會話失效,改節點自動刪除。
客戶端會話:一個客戶端的會話包括,未連接—連接中—連接—結束

臨時有序節點:在臨時節點的特性上維護了一個順序編號

3、操作命令

創建節點: create [-s] [-e] path data acl 默認情況下爲持久化節點
-s代表這個節點是否有序 可選參數
-e代表這個節點是否是臨時的 可選參數
path代表路徑
data代表數據
acl代表權限 可選參數

acl 
zk提供控制節點的訪問權限,用於保證zk的數據安全性,避免失誤操作而導致系統出現重大事故
create創建     read只讀    write修改    delete刪除   admin

get path [watch] 獲得指定path的節點數據信息
數據信息:
data(節點中保存的數據信息)
cversion = 0(子節點的版本號)
dataVersion = 1(數據版本號)
aclVersion = 0(acl權限版本號)
cZxid = 0x100000052(創建節點的事務ID)
ctime = Fri Jun 22 17:50:30 CST 2018(節點創建時間)
mZxid = 0x100000052(最後一次更新節點的事務ID)
mtime = Fri Jun 22 17:50:30 CST 2018(節點更新時間)
pZxid = 0x100000052(子節點最後一次被更新的事務ID)
ephemeralOwner = 0x0(用於臨時節點,保存臨時節點的ID(臨時節點的會話ID,會話結束的時候會根據這個ID進行刪除臨時節點),如果爲持久行節點,則其值爲0)
dataLength = 4(節點存儲的數據的長度)
numChildren = 0(當前節點的子節點的個數)

watch
zk提供分佈式數據發佈訂閱,允許客戶端向服務端註冊一個watcher監聽。
當服務端的節點觸發指定事件時候會觸發watcher,服務端會想客戶端發送一個事件通知,告知客戶端服務端發生的變化。
watcher的通知是一次性的,一旦觸發一次通知之後該watche就會失效,不關係客戶端有沒有收到該事件

set path data [version] 修改指定path的節點的數據信息
path代表路徑
data代表要存的數據
version代表版本號,樂觀鎖的概念,默認情況下爲0,如果後續這個節點變的話dataversion變爲1

delete path [version] 刪除指定path的節點,注意:刪除時必須從子節點開始逐步往上層刪

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