ZooKeeper中数据平时都在内存中通过一个叫ZkDataBase的类来治理保护的,同时ZooKeeper提供了Snapshot(快照)的形式能够将ZkDataBase长久化到磁盘,避免数据失落。
ZkDataBase通过DataTree保留整个树形数据结构。一个DataTree的每个节点是DataNode来示意。
以上就是ZooKeeper中的znode的数据结构了。
ZkDataBase读数据和写数据的实现逻辑都是通过DataTree实现的,次要包含getNode、getData、getACL、getChildren等操作接口。
构造示意:
图片转自:分布式服务框架 Zookeeper 治理分布式环境中的数据