概述
這是寫zookeeper過程中最輕松的一篇文章了,因為zookeeper的data存儲結構是比較簡單的,是以整個文章也比較簡單。
zookeeper資料結構
首先zookeeper的核心儲存結構是一個DataTree資料結構,其實内部是一個Map<String, DataNode> nodes的資料結構,其中key是path,DataNode是真正儲存資料的核心資料結構。
DataNode核心字段包括byte data[]用于儲存節點内容,Long acl用于儲存data的acl規則,Set<String> children其實就是儲存該DataNode下屬的子節點的path。
最後一個源碼截圖說明了我們建立一個節點的時候如何處理parent和children的相關節點的存儲,其實說白了就是所有的節點儲存在DataTree<String, DataNode> nodes的資料結構當中,然後每個DataNode本身儲存其children的path。說白了就是DataNode在一個統一的地方儲存,然後父子關系由各個DataNode本身進行儲存。

dataTree的核心資料結構
DataNode的核心資料結構
建立節點的核心邏輯