我是靠谱客的博主 多情枕头,最近开发中收集的这篇文章主要介绍Zookeeper zkCli客户端,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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客户端所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部