摘要:
zookeeper底层通过NIO进行网络传输,如果对NIO不是很熟悉,先参见java NIO。下面我们来逐步实现基于NIO的zookeeper实现,首先我们要定义应用层的通信协议。 传输协议 请求协议格式: 响应协议格式: 请求和响应体类型: List<String> children 1.将请求封 阅读全文
摘要:
zookeeper为了防止,系统宕机或重启导致的数据丢失,会对数据进行定时持久化。有两种持久化方式: 1.为每次事务操作记录到日志文件,这样就可以通过执行这些日志文件来恢复数据。 2.为了加快ZooKeeper恢复的速度,ZooKeeper还提供了对树结构和session信息进行数据快照持久化的操作 阅读全文
摘要:
这一节我们主要来看一下zookeeper文件系统的实现。 树结构 为了提高对指定节点的操作,zookeeper使用一个HashMap来存储树结构数据,key为数据路径,value为节点数据。 树节点(DataNode) 1 public class DataNode implements Recor 阅读全文