您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“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 中,可以說(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
我們直觀的看到此時(shí)存儲(chǔ)的數(shù)據(jù)在根目錄下存在 runoob 和 zookeeper 兩個(gè)節(jié)點(diǎn),zookeeper 節(jié)點(diǎn)下存在 quota 這個(gè)節(jié)點(diǎn)。 runoob 節(jié)點(diǎn)是在我們之前章節(jié)創(chuàng)建,并且通過(guò) java 客戶端設(shè)置值 0,現(xiàn)在我們?cè)诿钚薪K端執(zhí)行 get /runoob 顯示此節(jié)點(diǎn)的屬性。
$ get /runoob
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
對(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í)行完終端命令行顯示:
可見(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è)資訊頻道!
免責(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)容。