天天看点

ZooKeeper中的zNode节点解析

当我们通过get命令,获取zookeeper中的节点信息时。

我们会发现它附带一系列信息,如下图:

ZooKeeper中的zNode节点解析

分别来介绍一下这些参数:

   ①cZxid = 0x300000006    创建节点时的事务id   

   ②ctime = Thu Jul 25 01:55:09 CST 2019   创建节点的时间

   ③mZxid = 0x300000004   更新节点时的事务id(如未做修改,创建事务的id和更新事务的id是一样的)

   ④mtime = Thu Jul 25 19:10:20 CST 2019   修改节点的时间

   ⑤pZxid = 0x300000006   当前节点下的子节点列表里面,最后一次被修改的时候的事务id (只有子节点变更以后,pZxid才会变化)

   如下三个Version,采用乐观锁机制,根据版本号来判断是否有更新

   ⑥cversion = 0     当前节点的子节点版本号

   ⑦dataVersion = 1     当前数据内容的版本号(修改内容会变)

      (乐观锁机制)默认0,当前版本号是1,通过命令set /lzb 'xxx' 1,则可以成功修改,修改后版本号变成2;再次修改如果还是使用1,会提示:version No is not valid

   ⑧aclVersion = 0      当前节点acl(权限)变更的版本号

   ⑨ephemeralOwner = 0x0       会话信息(会话信息,创建临时节点才会有的。当前客户端连接到ZooKeeper服务,会产生一个会话,会话和服务端建立后,会产生一个标志。基于这个标志,才能知道当前会话结束后,应该把哪些节点删除。是当前会话的一个标志)

      上图中因为/lzb节点是持久节点,所以值为0x0。创建一个临时节点/lzb2,如下图

ZooKeeper中的zNode节点解析

   ⑩dataLength = 4    当前节点内容的长度 (值8888的长度为4)

   ⑪numChildren = 0    子节点的数量 (说明/lzb节点下无子节点)

博主写作不易,来个关注呗

求关注、求点赞,加个关注不迷路 ヾ(◍°∇°◍)ノ゙

博主不能保证写的所有知识点都正确,但是能保证纯手敲,错误也请指出,望轻喷 Thanks♪(・ω・)ノ