zookeeper学习之节点数据模型<十一>

本文介绍了ZooKeeper的数据节点(znode)结构及其组成的DataTree。详细解释了znode的属性,包括创建和修改事务ID、时间戳、版本号等,并讨论了这些属性如何用于实现并发控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zookeeper的节点示意图,在<一>中就已经去网上截了一张图,每一个数据节点就是一个znode,所以的节点按照层次结构组织一起,形成了一棵树,在使用中,可以看到访问地址使用斜杠(/)的,之前我们创建一个节点,又可以在节点下创建很多子节点。

下面是DataNode的信息,存了一个父节点,还有节点版本状态,还有子节点路径,这边的路径是只有父节点路径后的那些,acl权限,放的是一个long类型,实际的存在DataTree里面有个Map<Long, List<ACL>> 

205523_a4Nj_2277632.png, 

然后我们看看stat里面是什么信息

czxid:创建事务id

mzxid:最后修改的事务id

ctime:创建时间

mtime:最后一次修改时间

verison:数据版本号

cverison:子节点版本号

aversion:节点的acl版本号

pzxid:子节点最后一次修改事务的id

205949_xpzM_2277632.png

其中有三个version的版本号,来确定一个数据的版本,据说是用来实现并发乐观控制的,类似于CAS,如果版本发生变化,会抛出KeeperException.BadVersionException异常。

212448_8kKL_2277632.png

所有的znode组成了DataTree,里面有所有节点的nodes,还有两个WatcherManager,看个大概

214253_IuIx_2277632.png

对今天看的内容做个简要的笔记,也只是看个大概

转载于:https://my.oschina.net/u/2277632/blog/1537600

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值