当我们通过get命令,获取zookeeper中的节点信息时。
我们会发现它附带一系列信息,如下图:
分别来介绍一下这些参数:
①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,如下图
⑩dataLength = 4 当前节点内容的长度 (值8888的长度为4)
⑪numChildren = 0 子节点的数量 (说明/lzb节点下无子节点)
博主写作不易,来个关注呗
求关注、求点赞,加个关注不迷路 ヾ(◍°∇°◍)ノ゙
博主不能保证写的所有知识点都正确,但是能保证纯手敲,错误也请指出,望轻喷 Thanks♪(・ω・)ノ