ZooKeeper中数据平时都在内存中通过一个叫ZkDataBase的类来治理保护的,同时ZooKeeper提供了Snapshot(快照)的形式能够将ZkDataBase长久化到磁盘,避免数据失落。

ZkDataBase通过DataTree保留整个树形数据结构。一个DataTree的每个节点是DataNode来示意。

以上就是ZooKeeper中的znode的数据结构了。

ZkDataBase读数据和写数据的实现逻辑都是通过DataTree实现的,次要包含getNode、getData、getACL、getChildren等操作接口。

构造示意:

图片转自:分布式服务框架 Zookeeper 治理分布式环境中的数据