溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Zookeeper數(shù)據(jù)模型怎么用

發(fā)布時(shí)間:2022-02-19 10:04:48 來(lái)源:億速云 閱讀:112 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“Zookeeper數(shù)據(jù)模型怎么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Zookeeper數(shù)據(jù)模型怎么用”這篇文章吧。

Zookeeper作為分布式系統(tǒng)的底層協(xié)調(diào)服務(wù)有著其簡(jiǎn)單可依靠的數(shù)據(jù)模型,數(shù)據(jù)模型加之?dāng)?shù)據(jù)同步、一致性處理和可靠性,在此之上有很多經(jīng)典的應(yīng)用,例如,分布式鎖、服務(wù)器動(dòng)態(tài)上線下感知、主節(jié)點(diǎn)選舉、數(shù)據(jù)發(fā)布與訂閱、負(fù)載均衡等等。

Zookeeper數(shù)據(jù)模型怎么用

數(shù)據(jù)模型

在 zookeeper 中,可以說(shuō) zookeeper 中的所有存儲(chǔ)的數(shù)據(jù)是由 znode 組成的,節(jié)點(diǎn)也稱為 znode,并以 key/value 形式存儲(chǔ)數(shù)據(jù)。

整體結(jié)構(gòu)類似于 linux 文件系統(tǒng)的模式以樹形結(jié)構(gòu)存儲(chǔ)。其中根路徑以 / 開頭。

進(jìn)入 zookeeper 安裝的 bin 目錄,通過(guò)sh zkCli.sh打開命令行終端,執(zhí)行 “l(fā)s /” 命令顯示:

$ ls /
$ ls /zookeeper
$ ls /zookeeper/quota

Zookeeper數(shù)據(jù)模型怎么用 我們直觀的看到此時(shí)存儲(chǔ)的數(shù)據(jù)在根目錄下存在 runoob 和 zookeeper 兩個(gè)節(jié)點(diǎn),zookeeper 節(jié)點(diǎn)下存在 quota 這個(gè)節(jié)點(diǎn)。 Zookeeper數(shù)據(jù)模型怎么用 runoob 節(jié)點(diǎn)是在我們之前章節(jié)創(chuàng)建,并且通過(guò) java 客戶端設(shè)置值 0,現(xiàn)在我們?cè)诿钚薪K端執(zhí)行 get /runoob 顯示此節(jié)點(diǎn)的屬性。

$ get /runoob
Zookeeper數(shù)據(jù)模型怎么用
ZooKeeper 數(shù)據(jù)模型簡(jiǎn)介ZooKeeper 數(shù)據(jù)模型簡(jiǎn)介

Znode 的狀態(tài)屬性

cZxid創(chuàng)建節(jié)點(diǎn)時(shí)的事務(wù)ID
ctime創(chuàng)建節(jié)點(diǎn)時(shí)的時(shí)間
mZxid最后修改節(jié)點(diǎn)時(shí)的事務(wù)ID
mtime最后修改節(jié)點(diǎn)時(shí)的時(shí)間
pZxid表示該節(jié)點(diǎn)的子節(jié)點(diǎn)列表最后一次修改的事務(wù)ID,添加子節(jié)點(diǎn)或刪除子節(jié)點(diǎn)就會(huì)影響子節(jié)點(diǎn)列表,但是修改子節(jié)點(diǎn)的數(shù)據(jù)內(nèi)容則不影響該ID**(注意,只有子節(jié)點(diǎn)列表變更了才會(huì)變更pzxid,子節(jié)點(diǎn)內(nèi)容變更不會(huì)影響pzxid)**
cversion子節(jié)點(diǎn)版本號(hào),子節(jié)點(diǎn)每次修改版本號(hào)加1
dataversion數(shù)據(jù)版本號(hào),數(shù)據(jù)每次修改該版本號(hào)加1
aclversion權(quán)限版本號(hào),權(quán)限每次修改該版本號(hào)加1
ephemeralOwner創(chuàng)建該臨時(shí)節(jié)點(diǎn)的會(huì)話的sessionID。**(**如果該節(jié)點(diǎn)是持久節(jié)點(diǎn),那么這個(gè)屬性值為0)
dataLength該節(jié)點(diǎn)的數(shù)據(jù)長(zhǎng)度
numChildren該節(jié)點(diǎn)擁有子節(jié)點(diǎn)的數(shù)量**(只統(tǒng)計(jì)直接子節(jié)點(diǎn)的數(shù)量)**

顯示詳細(xì)信息

了解上面狀態(tài)屬性值,我們對(duì) /runoob 節(jié)點(diǎn)做一次修改,執(zhí)行命令 set /runoob 1 ,如下圖所示:

$ set /runoob 1

Zookeeper數(shù)據(jù)模型怎么用

對(duì)比上面結(jié)果,可以看到 mZxid、mtime、dataVersion 都發(fā)生了變化。

在 /runoob 節(jié)點(diǎn)下,我們?cè)偬砑右蛔庸?jié)點(diǎn),執(zhí)行:

$ create -e  /runoob/child  0
$ get /runoob

提示:更多命令使用后面章節(jié)會(huì)詳解介紹。

執(zhí)行完終端命令行顯示: 

Zookeeper數(shù)據(jù)模型怎么用 

可見(jiàn) /runoob 節(jié)點(diǎn)的 pZxid、cversion、numChildren 都發(fā)生了相應(yīng)的改變。

以上是“Zookeeper數(shù)據(jù)模型怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI