您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Zookeeper數據模型怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Zookeeper數據模型怎么用”這篇文章吧。
Zookeeper作為分布式系統的底層協調服務有著其簡單可依靠的數據模型,數據模型加之數據同步、一致性處理和可靠性,在此之上有很多經典的應用,例如,分布式鎖、服務器動態上線下感知、主節點選舉、數據發布與訂閱、負載均衡等等。
在 zookeeper 中,可以說 zookeeper 中的所有存儲的數據是由 znode 組成的,節點也稱為 znode,并以 key/value 形式存儲數據。
整體結構類似于 linux 文件系統的模式以樹形結構存儲。其中根路徑以 / 開頭。
進入 zookeeper 安裝的 bin 目錄,通過sh zkCli.sh打開命令行終端,執行 “ls /” 命令顯示:
$ ls / $ ls /zookeeper $ ls /zookeeper/quota
我們直觀的看到此時存儲的數據在根目錄下存在 runoob 和 zookeeper 兩個節點,zookeeper 節點下存在 quota 這個節點。 runoob 節點是在我們之前章節創建,并且通過 java 客戶端設置值 0,現在我們在命令行終端執行 get /runoob 顯示此節點的屬性。
$ get /runoob
cZxid | 創建節點時的事務ID |
---|---|
ctime | 創建節點時的時間 |
mZxid | 最后修改節點時的事務ID |
mtime | 最后修改節點時的時間 |
pZxid | 表示該節點的子節點列表最后一次修改的事務ID,添加子節點或刪除子節點就會影響子節點列表,但是修改子節點的數據內容則不影響該ID**(注意,只有子節點列表變更了才會變更pzxid,子節點內容變更不會影響pzxid)** |
cversion | 子節點版本號,子節點每次修改版本號加1 |
dataversion | 數據版本號,數據每次修改該版本號加1 |
aclversion | 權限版本號,權限每次修改該版本號加1 |
ephemeralOwner | 創建該臨時節點的會話的sessionID。**(**如果該節點是持久節點,那么這個屬性值為0) |
dataLength | 該節點的數據長度 |
numChildren | 該節點擁有子節點的數量**(只統計直接子節點的數量)** |
顯示詳細信息
了解上面狀態屬性值,我們對 /runoob 節點做一次修改,執行命令 set /runoob 1 ,如下圖所示:
$ set /runoob 1
對比上面結果,可以看到 mZxid、mtime、dataVersion 都發生了變化。
在 /runoob 節點下,我們再添加一子節點,執行:
$ create -e /runoob/child 0 $ get /runoob
提示:更多命令使用后面章節會詳解介紹。
執行完終端命令行顯示:
可見 /runoob 節點的 pZxid、cversion、numChildren 都發生了相應的改變。
以上是“Zookeeper數據模型怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。