Zookeeper在Linux中的数据存储结构采用树形结构,类似文件系统目录,由ZNode构成,具体如下:
- 数据存储形式:以树形结构组织,根节点为“/”,每个ZNode可包含数据和子节点,数据存储在内存的DataTree结构中,同时通过事务日志(WAL)和快照(Snapshot)实现持久化。
- ZNode类型:
- 持久节点:创建后永久存在,除非显式删除。
- 临时节点:与客户端会话绑定,会话断开时自动删除。
- 顺序节点:创建时自动附加递增序号,保证唯一性。
- 数据存储组件:
- DataTree:内存中存储整棵树的数据结构,维护节点路径到数据节点的映射。
- DatNode:数据存储最小单元,包含数据、ACL、状态等信息。
- 事务日志:记录所有数据变更操作,用于故障恢复。
- 快照:定期将内存数据持久化到磁盘,便于快速恢复。