ZooKeeper数据存储!

内存数据

ZooKeeper的数据模型是存储在内存中的。

  • 源码中,通过 DataTree 类来定义的。

数据日志

数据日志是用来记录 ZooKeeper 服务运行状态的数据文件。

通过这个文件能统计 ZooKeeper 服务的运行情况,更可以在 ZooKeeper 服务发生异常的情况下。

根据日志文件记录的内容来进行分析,定位问题产生的原因并找到解决异常错误的方法。

事务日志

在 ZooKeeper 服务运行过程中,会不断地接收和处理来自客户端的事务性会话请求。

每次在处理事务性请求的时候,都要记录这些信息到事务日志中。

同时集群中,Leader服务器会向 ZooKeeper 集群中的其他角色服务发送数据同步信息。

在接收到数据同步信息后,ZooKeeper 集群中的 Follow 和 Observer 服务器就会进行数据同步。

  • 这两种角色服务器所接收到的信息就是 Leader 服务器的事务日志。

  • 在接收到事务日志后,并在本地服务器上执行。

快照文件

在 ZooKeeper 服务运行的过程中,数据快照每间隔一段时间,就会把 ZooKeeper 内存中的数据存储到磁盘中。

  • 快照文件是间隔一段时间后对内存数据的备份。

与内存数据相比,快照文件的数据具有滞后性。