文章内容输出来源:拉勾教育Java高薪训练营。
本篇文章是 分布式集群架构场景方案 学习课程中的一部分笔记
ZooKeeper数据模型Znode
Zookeeper中,数据信息被保存再一个个数据节点上,这些节点被称为znode。ZNode是Zookeeper中最小数据单位,在ZNode下面可以再挂ZNode,这样一层层下去形成了一个层次化命名空间ZNode树,我们称为Znode Tree 采用了类似文件系统的层级树状结构进行管理
ZNode类型
持久性节点(Persistent)
临时性节点(Ephemeral)
顺序性节点(Sequential)
在开发中创建节点的时候通过组合可以生成一下四种节点类型;持久节点,持久顺序节点,临时节点,临时顺序节点。不同类型的节点会有不同的生命周期
事务ID
ZNode状态信息
内容包括两部分,节点数据内容和节点状态信息。
cZxid 就是 Create ZXID,表示节点被创建时的事务ID。
ctime 就是 Create Time,表示节点创建时间。
mZxid 就是 Modified ZXID,表示节点最后⼀次被修改时的事务ID。
mtime 就是 Modified Time,表示节点最后⼀次被修改的时间。
pZxid 表示该节点的⼦节点列表最后⼀次被修改时的事务 ID。只有⼦节点列表变更才会更新 pZxid, ⼦节点内容变更不会更新。
cversion 表示⼦节点的版本号。
dataVersion 表示内容版本号。
aclVersion 标识acl版本
ephemeralOwner 表示创建该临时节点时的会话 sessionID,如果是持久性节点那么值为 0
dataLength 表示数据⻓度。
numChildren 表示直系⼦节点数。
Watch数据变更通知
一个典型的发布/订阅模型系统,定义了一种一对多的订阅关系,能够让多台订阅者同时监听某一个主题对象,当这个主题对象自身状态变化时,会通知所有订阅者,是他们能够做出相应的处理。
Zookeeper允许客户端向服务端注册一个Watcher监听,当服务端的一些指定事件触发了这个Watcher,那么就会指定客户端发送一个事件通知来实现分布式的通知功能
ACL(Access Control List)权限控制
Zookeeper内部存储了分布式运行时状态的元数据,这些元数据会直接影响Zookeeper进行构造的分布式系统的允许状态。因此使用ACL机制保证数据安全。
通常使用"scheme🆔permission"来标识一个有效的ACL信息
权限模式(Scheme)
用来确定权限验证过程中使用的检验策略
授权对象(ID)
权限(Permission)
通过权限检查后,允许被执行的操作。
创建节点
create [-s][-e] path data acl
其中,-s或-e分别指定节点特性,顺序或临时节点,若不指定,则创建持久节点;acl⽤来进⾏权限控制。
读取节点
ls path 其中,path表示的是指定数据节点的节点路径,ls命令只能查看指定节点下的第一级所有子节点
get path 可以获取Zk指定节点的数据内容和属性信息
更新节点
set path data [version] 其中data表示要更新的数据内容,version表示数据版本。
删除节点
delete path [version] 若删除的节点存在子节点,那么无法删除该节点,必须先删除子节点,再删除父节点。
项目依赖
创建节点
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务