溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是ZooKeeper數據模型

發布時間:2020-08-03 11:29:11 來源:億速云 閱讀:168 作者:Leah 欄目:編程語言

什么是ZooKeeper數據模型?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

1、數據結構圖

什么是ZooKeeper數據模型

圖中的每個節點稱為一個 Znode。 每個 Znode 3 部分組成:

1stat:此為狀態信息, 描述該 Znode 的版本, 權限等信息

2data:與該 Znode 關聯的數據

3children:該 Znode 下的子節點

2、節點類型

Znode有兩種,分別為臨時節點和永久節點。節點的類型在創建時即被確定,并且不能改變。臨時節點:該節點的生命周期依賴于創建它們的會話。一旦會話結束,臨時節點將被自動刪除,當然可以也可以手動刪除。臨時節點不允許擁有子節點。永久節點:該節點的生命周期不依賴于會話,并且只有在客戶端顯示執行刪除操作的時候,他們才能被刪除。

Znode還有一個序列化的特性,如果創建的時候指定的話,該 Znode 的名字后面會自動追加一個不斷增加的序列號。序列號對于此節點的父節點來說是唯一的,這樣便會記錄每個子節點創建的先后順序。它的格式為“%10d”(10位數字,沒有數值的數位用 0 補充,例如“0000000001”)。

3、節點屬性

每個 znode 都包含了一系列的屬性,通過命令 get,可以獲得節點的屬性。

dataVersion:數據版本號,每次對節點進行 set 操作,dataVersion 的值都會增加 1(即使設置的是相同的數據),可有效避免了數據更新時出現的先后順序問題。

cversion :子節點的版本號。當 znode 的子節點有變化時,cversion 的值就會增加 1。

cZxid Znode 創建的事務 id。

mZxid Znode 被修改的事務 id,即每次對 znode 的修改都會更新 mZxid。對于 zk 來說,每次的變化都會產生一個唯一的事務 id,zxidZooKeeper Transaction Id)。通過 zxid,可以確定更新操作的先后順序。例如,如果 zxid1小于 zxid2,說明 zxid1 操作先于 zxid2 發生,zxid 對于整個 zk 都是唯一的, 即使操作的是不同的 znode。

ctime:節點創建時的時間戳。

mtime:節點最新一次更新發生時的時間戳。          

ephemeralOwner:如果該節點為臨時節點,ephemeralOwner 值表示與該節點。綁定的 session id。如果不是,ephemeralOwner 值為 0。

client server 通信之前,首先需要建立連接,該連接稱為 session。連接建立后,如果發生連接超時、授權失敗,或者顯式關閉連接,連接便處于 CLOSED 狀態,此時 session 結束。

4、ZooKeeper Watcher(監聽機制)

ZooKeeper 提供了分布式數據發布/訂閱功能,一個典型的發布/訂閱模型系統定義了一種一對多的訂閱關系,能讓多個訂閱者同時監聽某一個主題對象,當這個主題對象自身狀態變化時,會通知所有訂閱者,使他們能夠做出相應的處理。 ZooKeeper 中,引入了 Watcher 機制來實現這種分布式的通知功能。ZooKeeper 允許客戶端向服務端注冊一個 Watcher 監聽,當服務端的一些事件觸發了這個 Watcher,那么就會向指定客戶端發送一個事件通知來實現分布式的通知功能。觸發事件種類很多,如:節點創建,節點刪除,節點改變,子節點改變等??偟膩碚f可以概括 Watcher 為以下三個過程:客戶端向服務端注冊 Watcher、服務端事件發生觸發 Watcher、客戶端回調 Watcher 得到觸發事件情況

1Watch 機制特點

一次性觸發:事件發生觸發監聽,一個 watcher event 就會被發送到設置監聽的客戶端, 這種效果是一次性的,后續再次發生同樣的事件,不會再次觸發。

事件封裝:ZooKeeper 使用 WatchedEvent 對象來封裝服務端事件并傳遞。WatchedEvent 包含了每一個事件的三個基本屬性:通知狀態(keeperState),事件類型(EventType)和節點路徑(path)。

event 異步發送:watcher 的通知事件從服務端發送到客戶端是異步的。先注冊再觸發 Zookeeper 中的 watch 機制,必須客戶端先去服務端注冊監聽,這樣事件發送才會觸發監聽,通知給客戶端。

2)通知狀態和事件類型

什么是ZooKeeper數據模型


看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女