Zookeeper在Linux中的數據存儲結構采用樹形結構,類似文件系統目錄,由ZNode構成,具體如下:
- 數據存儲形式:以樹形結構組織,根節點為“/”,每個ZNode可包含數據和子節點,數據存儲在內存的DataTree結構中,同時通過事務日志(WAL)和快照(Snapshot)實現持久化。
- ZNode類型:
- 持久節點:創建后永久存在,除非顯式刪除。
- 臨時節點:與客戶端會話綁定,會話斷開時自動刪除。
- 順序節點:創建時自動附加遞增序號,保證唯一性。
- 數據存儲組件:
- DataTree:內存中存儲整棵樹的數據結構,維護節點路徑到數據節點的映射。
- DatNode:數據存儲最小單元,包含數據、ACL、狀態等信息。
- 事務日志:記錄所有數據變更操作,用于故障恢復。
- 快照:定期將內存數據持久化到磁盤,便于快速恢復。