創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、仁壽網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、html5、商城網(wǎng)站定制開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為仁壽等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。什么是ZooKeeper數(shù)據(jù)模型?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
1、數(shù)據(jù)結(jié)構(gòu)圖
圖中的每個(gè)節(jié)點(diǎn)稱為一個(gè) Znode。 每個(gè) Znode 由 3 部分組成:
(1)stat:此為狀態(tài)信息, 描述該 Znode 的版本, 權(quán)限等信息
(2)data:與該 Znode 關(guān)聯(lián)的數(shù)據(jù)
(3)children:該 Znode 下的子節(jié)點(diǎn)
2、節(jié)點(diǎn)類型
Znode有兩種,分別為臨時(shí)節(jié)點(diǎn)和永久節(jié)點(diǎn)。節(jié)點(diǎn)的類型在創(chuàng)建時(shí)即被確定,并且不能改變。臨時(shí)節(jié)點(diǎn):該節(jié)點(diǎn)的生命周期依賴于創(chuàng)建它們的會(huì)話。一旦會(huì)話結(jié)束,臨時(shí)節(jié)點(diǎn)將被自動(dòng)刪除,當(dāng)然可以也可以手動(dòng)刪除。臨時(shí)節(jié)點(diǎn)不允許擁有子節(jié)點(diǎn)。永久節(jié)點(diǎn):該節(jié)點(diǎn)的生命周期不依賴于會(huì)話,并且只有在客戶端顯示執(zhí)行刪除操作的時(shí)候,他們才能被刪除。
Znode還有一個(gè)序列化的特性,如果創(chuàng)建的時(shí)候指定的話,該 Znode 的名字后面會(huì)自動(dòng)追加一個(gè)不斷增加的序列號(hào)。序列號(hào)對(duì)于此節(jié)點(diǎn)的父節(jié)點(diǎn)來說是唯一的,這樣便會(huì)記錄每個(gè)子節(jié)點(diǎn)創(chuàng)建的先后順序。它的格式為“%10d”(10位數(shù)字,沒有數(shù)值的數(shù)位用 0 補(bǔ)充,例如“0000000001”)。
3、節(jié)點(diǎn)屬性
每個(gè) znode 都包含了一系列的屬性,通過命令 get,可以獲得節(jié)點(diǎn)的屬性。
dataVersion:數(shù)據(jù)版本號(hào),每次對(duì)節(jié)點(diǎn)進(jìn)行 set 操作,dataVersion 的值都會(huì)增加 1(即使設(shè)置的是相同的數(shù)據(jù)),可有效避免了數(shù)據(jù)更新時(shí)出現(xiàn)的先后順序問題。
cversion :子節(jié)點(diǎn)的版本號(hào)。當(dāng) znode 的子節(jié)點(diǎn)有變化時(shí),cversion 的值就會(huì)增加 1。
cZxid :Znode 創(chuàng)建的事務(wù) id。
mZxid :Znode 被修改的事務(wù) id,即每次對(duì) znode 的修改都會(huì)更新 mZxid。對(duì)于 zk 來說,每次的變化都會(huì)產(chǎn)生一個(gè)唯一的事務(wù) id,zxid(ZooKeeper Transaction Id)。通過 zxid,可以確定更新操作的先后順序。例如,如果 zxid1小于 zxid2,說明 zxid1 操作先于 zxid2 發(fā)生,zxid 對(duì)于整個(gè) zk 都是唯一的, 即使操作的是不同的 znode。
ctime:節(jié)點(diǎn)創(chuàng)建時(shí)的時(shí)間戳。
mtime:節(jié)點(diǎn)最新一次更新發(fā)生時(shí)的時(shí)間戳。
ephemeralOwner:如果該節(jié)點(diǎn)為臨時(shí)節(jié)點(diǎn),ephemeralOwner 值表示與該節(jié)點(diǎn)。綁定的 session id。如果不是,ephemeralOwner 值為 0。
在 client 和 server 通信之前,首先需要建立連接,該連接稱為 session。連接建立后,如果發(fā)生連接超時(shí)、授權(quán)失敗,或者顯式關(guān)閉連接,連接便處于 CLOSED 狀態(tài),此時(shí) session 結(jié)束。
4、ZooKeeper Watcher(監(jiān)聽機(jī)制)
ZooKeeper 提供了分布式數(shù)據(jù)發(fā)布/訂閱功能,一個(gè)典型的發(fā)布/訂閱模型系統(tǒng)定義了一種一對(duì)多的訂閱關(guān)系,能讓多個(gè)訂閱者同時(shí)監(jiān)聽某一個(gè)主題對(duì)象,當(dāng)這個(gè)主題對(duì)象自身狀態(tài)變化時(shí),會(huì)通知所有訂閱者,使他們能夠做出相應(yīng)的處理。 ZooKeeper 中,引入了 Watcher 機(jī)制來實(shí)現(xiàn)這種分布式的通知功能。ZooKeeper 允許客戶端向服務(wù)端注冊(cè)一個(gè) Watcher 監(jiān)聽,當(dāng)服務(wù)端的一些事件觸發(fā)了這個(gè) Watcher,那么就會(huì)向指定客戶端發(fā)送一個(gè)事件通知來實(shí)現(xiàn)分布式的通知功能。觸發(fā)事件種類很多,如:節(jié)點(diǎn)創(chuàng)建,節(jié)點(diǎn)刪除,節(jié)點(diǎn)改變,子節(jié)點(diǎn)改變等??偟膩碚f可以概括 Watcher 為以下三個(gè)過程:客戶端向服務(wù)端注冊(cè) Watcher、服務(wù)端事件發(fā)生觸發(fā) Watcher、客戶端回調(diào) Watcher 得到觸發(fā)事件情況
(1)Watch 機(jī)制特點(diǎn)
一次性觸發(fā):事件發(fā)生觸發(fā)監(jiān)聽,一個(gè) watcher event 就會(huì)被發(fā)送到設(shè)置監(jiān)聽的客戶端, 這種效果是一次性的,后續(xù)再次發(fā)生同樣的事件,不會(huì)再次觸發(fā)。
事件封裝:ZooKeeper 使用 WatchedEvent 對(duì)象來封裝服務(wù)端事件并傳遞。WatchedEvent 包含了每一個(gè)事件的三個(gè)基本屬性:通知狀態(tài)(keeperState),事件類型(EventType)和節(jié)點(diǎn)路徑(path)。
event 異步發(fā)送:watcher 的通知事件從服務(wù)端發(fā)送到客戶端是異步的。先注冊(cè)再觸發(fā) Zookeeper 中的 watch 機(jī)制,必須客戶端先去服務(wù)端注冊(cè)監(jiān)聽,這樣事件發(fā)送才會(huì)觸發(fā)監(jiān)聽,通知給客戶端。
(2)通知狀態(tài)和事件類型
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。
網(wǎng)頁名稱:什么是ZooKeeper數(shù)據(jù)模型-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://aaarwkj.com/article16/ccdjdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、動(dòng)態(tài)網(wǎng)站、品牌網(wǎng)站制作、域名注冊(cè)、網(wǎng)站內(nèi)鏈、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容