1. ZooKeeper 数据模型 Znode
在Zookeeper中,数据信息被保存在一个个数据节点上,这些节点被称为ZNode
。ZNode 是 Zookeeper 中最小数据单位,在 ZNode 下面又可以再挂 ZNode,这样一层层下去就形成了一个层次化命名空间 ZNode 树,我们称为ZNode Tree,它采用了类似文件系统的层级树状结构进行管理。见下图示例:
在Zookeeper中,每一个数据节点都是一个ZNode,上图根目录下有两个节点,分别是∶app1 和 app2,其中 app1 下面又有三个子节点,所有 ZNode 按层次化进行组织,形成这么一棵树,ZNode 的节点路径标识方式和 Unix 文件系统路径非常相似,都是由一系列使用斜杠(/)进行分割的路径表示,开发人员可以向这个节点写入数据,也可以在这个节点下面创建子节点。
2. ZNode 的类型
Zookeeper 节点类型可以分为三大类:持久性节点(Persistent),临时性节点(Ephemeral),顺序性节点(Sequential)
在开发中在创建节点的时候通过组合可以生成以下四种节点类型∶持久节点、持久顺序节点、临时节点、临时顺序节点。不同类型的节点则会有不同的生命周期
-
持久节点
Zookeeper中最常见的一种节点类型,所谓持久节点,就是指节点被创建后会一直存在服务器,直到删除操作主动清除 -
持久顺序节点
有顺序的持久节点,节点特性和持久节点是一样的,只是额外特性表现在顺序上。顺序特性实质是在创建节点的时候,会在节点名后面加上一个数字后缀