问题背景

使用zookeeper客户端指令操作zookeeper

zookeeper分布式技术基本概念(一)

zookeeper单机及集群部署,附安装包下载(二)

zookeeper客户端命令(三)

zook客户端指令

1 启动客户端

./zkCli.sh

2 显示所有客户端命令

help


3 查看当前znode中所包含的内容

ls /


4 查看当前节点详细数据

ls -s /

  • cZxid:创建节点的事务
    > 每次修改ZooKeeper状态都会收到一个zxid形式的时间戳,也就是ZooKeeper事务ID
    > 事务ID是ZooKeeper中所有修改总的次序
    > 每个修改都有唯一的zxid,如果zxid1小于zxid2,那么zxid1在zxid2之前发生
  • ctime:被创建的毫秒数(从1970年开始)
  • mZxid:最后更新的事务zxid
  • mtime:最后修改的毫秒数(从1970年开始)
  • pZxid:最后更新的子节点zxid
  • cversion:创建版本号,子节点修改次数
  • dataVersion:数据变化版本号
  • aclVersion:权限版本号
  • ephemeralOwner:如果是临时节点,这个是znode拥有者的session id,如果不是临时节点则是0
  • dataLength:数据长度
  • numChildren:子节点数

节点创建测试

1 分别创建两个普通节点

  • 在根目录下创建a和b两个节点
create /a
create /b

  • 在根目录下,创建 c 节点,并保存数据 “yuange” 数据到节点上
create /c "yuange"

  • 多级创建节点
    > 在d节点下,创建e节点,数据为"suolong"
    > d节点必须先创建好,否则报错“节点不存在”
create /d
create /d/e "suolong"


2 获取节点的值

get /d/e


3 创建短暂节点,创建成功后,quit退出客户端,重新连接,短暂节点消失

create -e /temper
ls /

quit
./zkCli.sh
ls /

短暂节点temper消失

4 创建带序号的节点

  • 在节点c下面,创建3个带序号的节点city
    执行三次
create -s /c/city

  • 如果原来没有序号节点,序号从0开始递增
  • 如果原节点下已有2个节点,则再排序时从2开始,以此类推

5 修改节点数据值

set /d/e "yuange is a cool boy"
get /d/e

集群模式下,监听节点的值变化或者子节点变化(路径变化)

1 在server3主机上注册监听/b节点的数据变化

addWatch /b

2 修改在server1上节点/b的数据

set /b "bodaner"

3 server3会立刻响应

WatchedEvent state:SyncConnected type:NodeDataChanged path:/b


4 如果server1的节点/b创建子节点/newpoint,server3会立马显示

create /b/newpoint


5 在server1删除节点,server3也能监听到

delete /b/newpoint


6 递归删除节点,可以删除节点下面的其他节点

deleteall /d

总结

  • 客户端操作节点,实际程序里面也会操作




作为程序员第 107 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha …

Lyric: 我会陪你一直走到最后

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐