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

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),平果企業(yè)網(wǎng)站建設(shè),平果品牌網(wǎng)站建設(shè),網(wǎng)站定制,平果網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,平果網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
數(shù)據(jù)模型
在 zookeeper 中,可以說 zookeeper 中的所有存儲的數(shù)據(jù)是由 znode 組成的,節(jié)點也稱為 znode,并以 key/value 形式存儲數(shù)據(jù)。
整體結(jié)構(gòu)類似于 linux 文件系統(tǒng)的模式以樹形結(jié)構(gòu)存儲。其中根路徑以 / 開頭。
進入 zookeeper 安裝的 bin 目錄,通過sh zkCli.sh打開命令行終端,執(zhí)行 “l(fā)s /” 命令顯示:
$ ls /
$ ls /zookeeper
$ ls /zookeeper/quota
我們直觀的看到此時存儲的數(shù)據(jù)在根目錄下存在 runoob 和 zookeeper 兩個節(jié)點,zookeeper 節(jié)點下存在 quota 這個節(jié)點。 runoob 節(jié)點是在我們之前章節(jié)創(chuàng)建,并且通過 java 客戶端設(shè)置值 0,現(xiàn)在我們在命令行終端執(zhí)行 get /runoob 顯示此節(jié)點的屬性。
$ get /runoob
ZooKeeper 數(shù)據(jù)模型簡介ZooKeeper 數(shù)據(jù)模型簡介
Znode 的狀態(tài)屬性
| cZxid | 創(chuàng)建節(jié)點時的事務(wù)ID |
|---|---|
| ctime | 創(chuàng)建節(jié)點時的時間 |
| mZxid | 最后修改節(jié)點時的事務(wù)ID |
| mtime | 最后修改節(jié)點時的時間 |
| pZxid | 表示該節(jié)點的子節(jié)點列表最后一次修改的事務(wù)ID,添加子節(jié)點或刪除子節(jié)點就會影響子節(jié)點列表,但是修改子節(jié)點的數(shù)據(jù)內(nèi)容則不影響該ID**(注意,只有子節(jié)點列表變更了才會變更pzxid,子節(jié)點內(nèi)容變更不會影響pzxid)** |
| cversion | 子節(jié)點版本號,子節(jié)點每次修改版本號加1 |
| dataversion | 數(shù)據(jù)版本號,數(shù)據(jù)每次修改該版本號加1 |
| aclversion | 權(quán)限版本號,權(quán)限每次修改該版本號加1 |
| ephemeralOwner | 創(chuàng)建該臨時節(jié)點的會話的sessionID。**(**如果該節(jié)點是持久節(jié)點,那么這個屬性值為0) |
| dataLength | 該節(jié)點的數(shù)據(jù)長度 |
| numChildren | 該節(jié)點擁有子節(jié)點的數(shù)量**(只統(tǒng)計直接子節(jié)點的數(shù)量)** |
顯示詳細信息
了解上面狀態(tài)屬性值,我們對 /runoob 節(jié)點做一次修改,執(zhí)行命令 set /runoob 1 ,如下圖所示:
$ set /runoob 1
對比上面結(jié)果,可以看到 mZxid、mtime、dataVersion 都發(fā)生了變化。
在 /runoob 節(jié)點下,我們再添加一子節(jié)點,執(zhí)行:
$ create -e /runoob/child 0
$ get /runoob
提示:更多命令使用后面章節(jié)會詳解介紹。
執(zhí)行完終端命令行顯示: 可見 /runoob 節(jié)點的 pZxid、cversion、numChildren 都發(fā)生了相應(yīng)的改變。
文章題目:詳解Zookeeper數(shù)據(jù)模型
URL地址:http://www.5511xx.com/article/cocjcji.html


咨詢
建站咨詢
