教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Znode儲存結(jié)構(gòu)是怎樣的?節(jié)點(diǎn)類型有幾種?

更新時間:2020年11月03日16時23分 來源:傳智播客 瀏覽次數(shù):

      Zookeeper的底層是一套數(shù)據(jù)儲存結(jié)構(gòu),其中的節(jié)點(diǎn),我們稱之為znode。Zookeeper中數(shù)據(jù)存儲的結(jié)構(gòu)和標(biāo)準(zhǔn)文件系統(tǒng)非常類似,擁有一個層次的命名空間,也是使用斜杠(/)進(jìn)行分割,兩者都是采用樹形層次結(jié)構(gòu)。不同的是,標(biāo)準(zhǔn)文件系統(tǒng)是由文件夾和文件來組成的樹,而Zookeeper是由什么來組成的樹呢?下面我們來看一下Zookeeper數(shù)據(jù)存儲結(jié)構(gòu),如圖1所示。
 圖1 Zookeeper數(shù)據(jù)模型
  從圖2可知,Zookeeper是由節(jié)點(diǎn)組成的樹,樹中的每個節(jié)點(diǎn)被稱為—Znode。每個節(jié)點(diǎn)都可以擁有子節(jié)點(diǎn)。每一個Znode默認(rèn)能夠存儲1MB的數(shù)據(jù),每個Znode都可以通過其路徑唯一標(biāo)識,如圖5-2中第三層的第一個Znode~~,~~,它的路徑是/app1/p_1。Zookeeper數(shù)據(jù)模型中的每個Znode都是由三部分組成,分別是stat(狀態(tài)信息,描述該Znode的版本,權(quán)限信息等組成)、data(與該Znode關(guān)聯(lián)的數(shù)據(jù))、children(該Znode下的子節(jié)點(diǎn))。
  Znode有兩種類型,分別是臨時節(jié)點(diǎn)和永久節(jié)點(diǎn)。
  臨時節(jié)點(diǎn),該生命周期依賴于創(chuàng)建它們的會話,一旦會話結(jié)束,臨時節(jié)點(diǎn)將會被自動刪除,當(dāng)然也可以手動刪除。雖然每個臨時的Znode都會綁定到一個客戶端,但它們對所有的客戶端還是可見的。另外,需要注意的是臨時節(jié)點(diǎn)不允許擁有子節(jié)點(diǎn)。
  永久節(jié)點(diǎn),該生命周期不依賴于會話,并且只有在客戶端顯示執(zhí)行刪除操作的時候,它們才能被刪除。
  由于Znode的序列化特性,在創(chuàng)建節(jié)點(diǎn)時,用戶可以請求在該Znode的路徑結(jié)尾添加一個不斷增加的序列號,序列號對于此節(jié)點(diǎn)的父節(jié)點(diǎn)來說是唯一的,這樣便會記錄每個子節(jié)點(diǎn)創(chuàng)建的先后順序。它的格式為“%010d”(10位數(shù)字,沒有數(shù)值的數(shù)位用0補(bǔ)充,例如“0000000001”)。當(dāng)計(jì)數(shù)值大于232-1時,計(jì)數(shù)器將會溢出。這樣便會存在四種類型的目錄節(jié)點(diǎn),分別對應(yīng)如下:
  PERSISTENT:永久節(jié)點(diǎn)
  EPHEMERAL:臨時節(jié)點(diǎn)
  PERSISTENT_SEQUENTIAL:序列化永久節(jié)點(diǎn)
EPHEMERAL_SEQUENTIAL:序列化臨時節(jié)點(diǎn)


猜你喜歡:

Zookeeper分布式系統(tǒng)的集群架構(gòu)介紹

Spark的集群安裝與配置簡介【大數(shù)據(jù)技術(shù)文章】

簡單舉例,MapReduce是如何進(jìn)行計(jì)算的

0 分享到:
和我們在線交談!