是的,我熟悉Zookeeper节点ZNode和相关属性。
在Zookeeper中,ZNode(Zookeeper节点)是一种表示Zookeeper数据结构中的数据存储节点的概念。它通常由节点名称和路径组成,用于标识Zookeeper集群中的特定位置。
ZNode具有以下属性:
- 节点名称:ZNode的名称是由节点路径和节点类型(例如,/node/path/name)组成的字符串。节点名称用于标识特定的数据存储位置。
- 节点路径:节点路径是ZNode的标识符,用于指定节点在Zookeeper集群中的位置。它通常由一系列目录和文件组成,形成一个树形结构。
- 节点类型:ZNode的类型可以是临时节点(临时节点在一段时间后会被自动删除)、持久节点(持久节点会一直存在)或命名空间节点(用于存储其他节点的路径)。
- 属性:ZNode可以具有一些属性,如权限、ACL(访问控制列表)等。这些属性用于控制对节点的访问和操作。
:
持久的(persistent):客户端和服务器端断开连接后,创建的节点不删除(默认)。短暂的(ephemeral):客户端和服务器端断开连接后,创建的节点自己删除。
:
持久化目录节点(PERSISTENT):客户端与Zookeeper断开连接后,该节点依旧存在持久化顺序编号目录节点(PERSISTENT_SEQUENTIAL)
客户端与Zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号:临时目录节点(EPHEMERAL)
客户端与Zookeeper断开连接后,该节点被删除:临时顺序编号目录节点
(EPHEMERAL_SEQUENTIAL)
客户端与Zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号
「注意」:创建ZNode时设置顺序标识,ZNode名称后会附加一个值,顺序号是一个单调递增的计数器,由父节点维护。
节点属性有哪些
一个znode节点不仅可以存储数据,还有一些其他特别的属性。接下来我们创建一个/test节点分析一下它各个属性的含义。
[zk: localhost:2181(CONNECTED) 6] get /test 456
cZxid = 0x59ac //
ctime = Mon Mar 30 15:20:08 CST 2020 mZxid = 0x59ad
mtime = Mon Mar 30 15:22:25 CST 2020 pZxid = 0x59ac
cversion = 0
dataVersion = 2
aclVersion = 0 ephemeralOwner = 0x0 dataLength = 3
numChildren = 0
属性说明
通过ZNode,Zookeeper提供了分布式协调服务、配置管理、命名服务等能力,使得多个分布式系统能够协同工作,实现数据的一致性和可靠性。