zookeeper 命令行基本操作

326 阅读1分钟

创建

create 创建持久化节点



# 创建节点
$ create /test mytest
Created /test

$ ls /test
[]

$ get /test
mytest
cZxid = 0xd86
ctime = Thu Jul 18 14:06:38 CST 2019
mZxid = 0xd86
mtime = Thu Jul 18 14:06:38 CST 2019
pZxid = 0xd86
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 6
numChildren = 0



create -e 创建临时节点


# 创建持久节点
$ create /test/tmp abc
Created /test/tmp

# 创建临时节点
$ create -e /test/tmp2 abc
Created /test/tmp2

# 校验节点信息
$ ls /test
[tmp2, tmp]


# 重新连接后再次校验
$ quit
# 临时节点已经去掉
$ ls /test
[tmp]


create -s 创建带序号节点 创建带序号节点


# 重复创建三次节点
$ create -s /test/seq aa
Created /test/seq0000000001
$ create -s /test/seq aa
Created /test/seq0000000002
$ create -s /test/seq aa
Created /test/seq0000000003


# 查看节点创建结果
$ ls /test
[seq0000000000, seq0000000003, seq0000000001, seq0000000002]


修改

set 修改节点


$ get /test/tmp
abc
cZxid = 0xda0
ctime = Thu Jul 18 14:14:41 CST 2019
mZxid = 0xda0
mtime = Thu Jul 18 14:14:41 CST 2019
pZxid = 0xda0
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0


$ set /test/tmp efg
cZxid = 0xda0
ctime = Thu Jul 18 14:14:41 CST 2019
mZxid = 0xda4
mtime = Thu Jul 18 14:17:01 CST 2019
pZxid = 0xda0
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

$ get /test/tmp
efg
cZxid = 0xda0
ctime = Thu Jul 18 14:14:41 CST 2019
mZxid = 0xda4
mtime = Thu Jul 18 14:17:01 CST 2019
pZxid = 0xda0
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0


删除

delete 删除单个节点

rmr 递归删除


# 查看结果之前的数据
$ ls /    
[zookeeper, test, testwatch]

# 里边有直接点直接删除会报错
$ delete /test
Node not empty: /test

# 递归删除
$ rmr /test

# 查看删除结果
$ ls /
[zookeeper, testwatch]


监听

注意监听的原理:监听只是将监听器放在服务器的监听队列里边, 下线后就不见了

get 监听节点数据的变化


# 客户端1 准备好测试节点
$ create /test/aa abc
Created /test/aa
$ ls /test
[aa]

# 客户端2 添加监听器到队列这种
$ get /test/aa watch

# 客户端1 修改节点数据
$ set /test/aa efg

# 客户端2 输出
WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/test/aa

ls 监听子节点数据的变化

可以监听子节点的创建和删除, 不能监听子节点的修改

测试监听节点的创建


# 客户端2 监听目录节点
$ ls /test watch

# 客户端1 创建子节点
[zk: localhost:2181(CONNECTED) 8] create /test/bb 123
Created /test/bb


# 客户端2 收到节点创建消息
WATCHER::

WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/test

测试监听节点的创建


# 创建将要删除的节点
[zk: localhost:2181(CONNECTED) 9] create /test/bb2 123
Created /test/bb2

# 客户端2 监听目录节点
$ ls /test watch

# 客户端1 山是生成节点
$ delete /test/bb2


# 客户端2 收到节点删除消息
WATCHER::

WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/test


测试监听节点的修改可自己试下