概述
1.1、session基本原理:
客户端与服务端之间的连接存在会话,每个会话都会可以设置一个超时时间,心跳结束,session则过期,Session过期,则临时节点znode会被抛弃。心跳机制:客户端向服务端的ping包请求。
1.2、watch机制
针对每个节点的操作,都会有一个监督者→wathcer,当监控的某个对象( znode )发生了变化,则触发watcher事件,zk中的watcher是一次性的,触发后立即销毁(可以设置为永久型)。父节点,子节点增删改都能够触发其watcher。
针对不同类型的操作,触发的watcher事件也不同︰
1.(子)节点创建事件
2.(子)节点删除事件
3.(子)节点数据变化事件
2.1启动客户端
注意,一定先启动了ZooKeeper才可以开启客户端(启动ZooKeeper集群,具体步骤可以参考ZooKeeper 安装与部署。)
jps
cd /usr/cstor/zookeeper
bin/zkCli.sh
2.2查询命令
(1)、显示所有操作命令
help
(2)、 查看当前znode总所包含的内容
ls /
(3)、查看节点信息
stat /
(4)、除了能查看目录下的节点,还能返回节点的信息(例如:ls2 /zookeeper。另外 stat /zookeeper 只能返回节点信息,ls2相当于 ls + stat 命令。)
ls2 /
(5)、详细信息详解
cZxid:代表zookeeper创建后为这个节点所分配的ID号。
ctime:代表该节点创建时间。
mZxid:代表修改节点后分配的一个新ID。节点每次修改mZxid都会以递增的形式增加。
mtime:代表最后一次被修改的时间。
pZxid:代表节点的子节点的最后被修改生成的ID号。
cversion:节点下所有子节点被修改的版本号,表示节点被修改的次数。
dataVersion:节点修改的版本号,代表节点被修改的次数,初始值为0,每一次修改一次值加1。
aclVersion:代表一个权限模型 acl代表权限 当节点权限发生变化的时候 权限的版本会自动累加1
ephemeralOwner:如果节点为临时节点,表示节点拥有者的会话ID,否则为0.
dataLength:代表的是元数据长度
numChildren:节点下子节点的数量。
4.3维护命令
(1)、创建节点
create /wangzhe "luban" 创建一个节点 wangzhe 并添加值 luban
create /wangzhe/sheshou "houyi" 在节点 wangzhe 下,创建一个sheshou并添加内容houyi
获取节点的值
ls / 查看我们创建的wangzhe节点
get /wangzhe 获取wangzhe节点值
ls /wangzhe/sheshou 查看wangzhe节点下的sheshou节点
get /wangzhe/sheshou 获取sheshou节点值
(2)、创建临时节点
create -e /wangzhe/fuzhu "daqiao" 在wangzhe节点下,创建临时 fuzhu 节点并添加值 daqiao
ls /wangzhe 查看创建的 fuzhu 临时节点
get /wangzhe/fuzhu 获取 fuzhu 节点值
退出当前客户端再进入查看临时节点是否存在
quit 退出客户端
bin/zkCli.sh 启动客户端
ls / 查看默认节点wangzh 发现存在
ls /wangzhe 查看wangzhe节点下的fuzhu临时节点消失
(3)创建顺序节点
create -s /wangzhe/fashi "zhouyu" 在wangzhe节点下创建顺序节点 fashe 并添加值 zhouyu
ls /wangzhe/ 查看节点
get /wangzhe/fashi0000000003 获取fashi0000000003数据值
注意:设置的节点路径会被重命名为序列数,如果客户端不与服务端连接,则节点的心跳机制也会停止(心跳机制也有时间段的,不是说客户端不与服务端连接就马上停止,得过了心跳机制设置的时间才会停止),ZooKeeper也会自动删除临时节点。
(4)、修改节点数据值
set /wangzhe/fashi0000000003 “daqiao” 修改fashi0000000003数据值为 daqiao
get /wangzge/fashi0000000003 获取fashi0000000003 数据值
(5)、删除节点
delete /wangzhe/fashi0000000003 删除fashi0000000003顺序节点
ls /wangzhe 查看fashi0000000003 是否成功删除
4.4节点监听
Watch命令
(1)、(子)节点值变化的监听
通过get path [watch]设置watcher
我们启动两台zkCli客户端就命名为A、B。
get /wangzhe watch 在A上注册监听/wangzhe 节点数据变化
set /wangzhe “zheyun” 在B上修改/wangzge 节点的数据
修改完成A就会收到数据变化的监听了。
(2)、(子)节点变化的监听
ls /wangzhe/sheshou watch 在A上注册监听/wangzhe/sheshou 节点的子节点变化
create /wangzhe/sheshou/jialuo “jialuo” 在B上/wangzhe/sheshou 节点上创建字节点
创建完成后A就会收到子节点变化的监听了。
(3)、(子)节点删除事件的监听
Ls /wangzhe/sheshoe/jialuo watch 在A上注册监听/wangzhe/sheshou/jialuo 节点的子节点变化
Delete /wangzhe/sheshou/jialuo 在B上删除 /wangzhe/sheshou/jialuo 子节点
删除完成后A就会收到节点变化的监听了。
最后
以上就是多情枕头为你收集整理的Zookeeper zkCli客户端的全部内容,希望文章能够帮你解决Zookeeper zkCli客户端所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复