我如何知道 zookeeper 节点是持久节点还是临时节点?

Posted

技术标签:

【中文标题】我如何知道 zookeeper 节点是持久节点还是临时节点?【英文标题】:How can I know if a zookeeper node is a persistent node or a ephemeral one? 【发布时间】:2017-04-24 04:52:16 【问题描述】:

正如标题所说,我如何知道 zookeeper 数据节点是持久节点还是来自 zkCli 的临时节点?似乎 zkCli.sh 没有显示任何可以帮助我的命令。

【问题讨论】:

【参考方案1】:

您可以使用以下两个命令来检查节点是持久节点还是临时节点

How to get the create mode of a path in zookeeper

stat path
get path -s

例如:

stat /config/node1 
get /config/node1 -s

与上述类似,您还将在 CLI 中获得一个统计结构。您可以检查统计数据的“临时所有者”属性。如果 znode 是临时节点,则这对应于该 znode 所有者的会话 id。如果不是临时节点,则为零。

持久节点和临时节点的示例输出

持久性

cZxid = 0x22
ctime = Tue Nov 03 17:21:34 IST 2020
mZxid = 0x22
mtime = Tue Nov 03 17:21:34 IST 2020
pZxid = 0x27
cversion = 5
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 17
numChildren = 5

短暂的

cZxid = 0xc1
ctime = Tue Nov 03 18:11:06 IST 2020
mZxid = 0xc1
mtime = Tue Nov 03 18:11:06 IST 2020
pZxid = 0xc1
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x1001ca8fc21001c
dataLength = 0
numChildren = 0

【讨论】:

以上是关于我如何知道 zookeeper 节点是持久节点还是临时节点?的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# Zookeeper实现分布式锁

zookeeper 节点有啥用

Zookeeper--05---客户端API操作

zookeeper创建有序节点,序号是不是会被用完?

zookeeper基本命令行操作

Zookeeper是如何实现分布式锁的