以下内容参照自Zookeeper系列一:Zookeeper基础命令操作,并在本地电脑上测试实现。
启动zk服务
./zkServer.sh start
dengzhilideMacBook-Pro:bin dengzhili$ ./zkServer.sh start
JMX enabled by default
Using config: ./../conf/zoo.cfg
-n Starting zookeeper ...
STARTED
停止zk服务
./zkServer.sh stop
查看zk的运行状态
./zkServer.sh status
dengzhilideMacBook-Pro:bin dengzhili$ ./zkServer.sh status
JMX enabled by default
Using config: ./../conf/zoo.cfg
Mode: standalone (单机状态)
客户端链接zk
./zkCli.sh
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
help 查看客户端帮助命令
[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit
getAcl path
close
connect host:port
查看路径下的节点信息(跟Linux ls命令作用类似)
ls path [watch]
[zk: localhost:2181(CONNECTED) 1] ls /
[dzl-test, app, zookeeper, dzl, dubbo, app1]
获取节点数据和更新信息
get path [watch]
[zk: localhost:2181(CONNECTED) 2] get /app
test-version
cZxid = 0x3d
ctime = Sun May 26 18:37:34 CST 2019
mZxid = 0x4a
mtime = Sun May 26 18:47:59 CST 2019
pZxid = 0x50
cversion = 4
dataVersion = 3
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 12
numChildren = 2
内容的具体含义:
cZxid :创建节点的id
ctime : 节点的创建时间
mZxid :修改节点的id
mtime :修改节点的时间
pZxid :子节点的id
cversion : 子节点的版本
dataVersion : 当前节点数据的版本
aclVersion :权限的版本
ephemeralOwner :判断是否是临时节点
dataLength : 数据的长度
numChildren :子节点的数量
获得节点的更新信息
stat path [watch]
[zk: localhost:2181(CONNECTED) 3] stat /app
cZxid = 0x3d
ctime = Sun May 26 18:37:34 CST 2019
mZxid = 0x4a
mtime = Sun May 26 18:47:59 CST 2019
pZxid = 0x50
cversion = 4
dataVersion = 3
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 12
numChildren = 2
ls2
ls命令和stat命令的整合
[zk: localhost:2181(CONNECTED) 4] ls2 /app
[sec0000000000, sec0000000002]
cZxid = 0x3d
ctime = Sun May 26 18:37:34 CST 2019
mZxid = 0x4a
mtime = Sun May 26 18:47:59 CST 2019
pZxid = 0x50
cversion = 4
dataVersion = 3
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 12
numChildren = 2
创建持久节点(默认)
create path data acl
[zk: localhost:2181(CONNECTED) 8] create /app appData
Created /app
[zk: localhost:2181(CONNECTED) 9] get /app
appData
cZxid = 0x3d
ctime = Sun May 26 18:37:34 CST 2019
mZxid = 0x3d
mtime = Sun May 26 18:37:34 CST 2019
pZxid = 0x3d
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 7
numChildren = 0
创建临时节点
create -e path data acl
[zk: localhost:2181(CONNECTED) 10] create -e /app-temp tempData
Created /app-temp
[zk: localhost:2181(CONNECTED) 11] get /app-temp
tempData
cZxid = 0x3e
ctime = Sun May 26 18:39:48 CST 2019
mZxid = 0x3e
mtime = Sun May 26 18:39:48 CST 2019
pZxid = 0x3e
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x16af3add6330000
dataLength = 8
numChildren = 0
#断开重连之后,临时节点自动消失
创建顺序节点 自动累加
create -s path data acl
[zk: localhost:2181(CONNECTED) 12] create -s /app/sec seq
Created /app/sec0000000000
[zk: localhost:2181(CONNECTED) 13] create -s /app/sec seq
Created /app/sec0000000001
[zk: localhost:2181(CONNECTED) 14] create -s /app/sec seq
Created /app/sec0000000002
修改节点
set path data [version]
[zk: localhost:2181(CONNECTED) 8] set /app info
cZxid = 0x3d
ctime = Sun May 26 18:37:34 CST 2019
mZxid = 0x59
mtime = Sun May 26 23:48:30 CST 2019
pZxid = 0x50
cversion = 4
dataVersion = 6
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 2
删除节点
delete path [version]
[zk: localhost:2181(CONNECTED) 3] ls /app
[sec0000000000, sec0000000001, sec0000000002]
[zk: localhost:2181(CONNECTED) 5] delete /app/sec0000000001
[zk: localhost:2181(CONNECTED) 6] ls /app
[sec0000000000, sec0000000002]