目录
一、数据模型
二、 节点的类型
(1)持久节点
(2)持久顺序节点
(3)临时节点
(4)临时顺序节点
三、客户端命令行
(1)创建节点
(2)读取节点信息
(3)删除
四、查看节点状态
五、监听机制
(1)监听节点变化
(2)监听节点值变化
六、ACL权限控制
(1)权限模式
(2)权限对象
(3)权限
(4)权限相关命令
一、数据模型
Zookeeper中储存数据使用znode组成的,也可以将znode叫做节点,
他就是以键值对的形式存储数据,整体的数据结构类似于树,可以
与Linux文件系统模式做比较,路径都是以/开头。
注意前面说了它是以键值对的形式储存数据的,键就是znode的节点
路径,比如/first
二、 节点的类型
zookeeper节点是有生命周期的,这取决于节点的类型。节点类型分为持久节点,临时节点以及时序节点,具体可生成一下四种节点
(1)持久节点
数据节点被创建后就一直存在于zookeeper服务器上,直到有操作来主动清除这个节点
(2)持久顺序节点
与持久节点一致,只不过有个额外的特性,每个父节点会为他的 第一级子节点维护一份时序,会记录每个子节点创建的先后顺序
(3)临时节点
具有临时性,不会一直存储在zookeeper服务器上,也就是说会话失效,该节点就会被自动清除,注意是是会话失效而不是连接断开。同时也要注意在临时节点下不可再创建子节点
(4)临时顺序节点
基本特性与临时节点一致,也是在临时节点基础添加了顺序的特性
三、客户端命令行
(1)创建节点
create -s 路径(键)+数据(值)
create -e 路径(键)+数据(值)-s:顺序节点(无选项的情况下默认是持久节点)
-e:临时节点举例:create -s /java opop
(2)读取节点信息
ls+路径 可以知道该路径下面的节点
get+路径 可以知道指定节点的数据内容和属性信息
set+路径+数据(值) 修改所谓的键对应的值
举例:ls /
get /java
set /java asas
(3)删除
delete+路径
举例:delete /java
注意如果节点包含子节点就会报错
四、查看节点状态
使用stat命令查看节点状态
状态属性 说明 czxid 表示该数据节点被创建时的事务ID mzxid 表示该节点最后一次被更新时的事务ID pzxid 表示该节点的子节点列表最后一次被修改时的事务ID ctime 表示该节点的创建时间 mtime 表示该节点最后一次被更新的时间 version 数据节点的版本号 cversion 子节点的版本号 aversion 节点的ACL版本号 ephemeralOwner 创建该临时节点的回话SessionID,若该节点是持久节点,那么该属性就是0 dataLength 数据内容的长度 numChildren 当前节点的子节点个数
五、监听机制
(1)监听节点变化
ls -w 路径 命令如果使用watch,那么监听的是节点的变化,而不是值的变化。
注意:一台主机使用监听机制,另外一台主机创建节点
(2)监听节点值变化
get -w 路径 watch监听机制只能够使用一次,如果下次想要使用,必须重新监听,就比如ls path watch命令,只能监听节点路径的改变一次,如果还想监听,那么需要再执行一次ls path watch命令
六、ACL权限控制
ACL权限控制
权限模式+权限对象+权限对于每个znode节点设置权限,子节点不会继承父节点的权限,
客户端无权访问某节点,但可以访问它的子节点
(1)权限模式
world 只有一个用户:anyone,代表所有人(默认)
ip 使用ip地址认证
auth 使用已添加认证的用户认证
digest 使用用户名:密码方式认证
(2)权限对象
IP 通常是一个IP地址或IP段,例如:“192.168.66.121”
Digest 自定义,通常是“username:BASE64(SHA-1(username:password))”
World 只有一个ID:anyone
Super 与Digest模式一致
(3)权限
权限 ACL缩写 描述
CREATE c 可以创建子节点
DELETE d 可以删除子节点(仅下一级节点)
READ r 可以读取节点数据及显示子节点列表
WRITE w 可以设置节点数据
ADMIN a 可以设置节点访问控制列表权限
(4)权限相关命令
getAcl 读取ACL权限
setAcl 设置权限
addauth 添加认证用户