1.create [-s] [-e] path data acl:创建节点
- s:可选,表示该节点为顺序节点
- e:可选,表示该节点为临时节点,会话结束被删除(不写默认持久节点)
- path:节点路径
- data:节点数据
- acl:访问控制列表(如果不加默认任何客户端均可操作该节点)
acl介绍:
在ZooKeeper中,就是通过schema、ID和permission指定一个节点的权限信息,即acl。
①权限模式schema
在ZooKeeper中,权限模式schema有两种类型,分别是ip和digest。
ip模式是基于ip白名单的方式指定某个服务器具有哪些权限。
digest模式是基于用户名和密码的方式指定哪个人具有什么样的权限。
②授权对象ID
在ip权限模式下,ID就是具体的ip地址字符串。192.168.1.0/16:表示匹配前16个bit的IP段
在digest权限模式下,ID是username:Base64(Sha1(username:password))字符串。
③权限permission
在ZooKeeper中,有create(c)、delete(d)、read(r)、write(w)和admin(a)这五种权限类型。
举例:
①创建一个临时顺序节点,路径为/test/test,节点数据为test01_data,并指定ip为192.168.100.100的服务器有crwda(create、read、write、delete、admin)的权限
create -s -e /test/test test01_data ip:192.168.100.100:crwda
②创建一个持久节点,路径为/test/test02,节点数据为test02_data,并指定test的用户有read的权限
create /test/test02 test02_data digest:yonghuming:mima:r
2.stat path [watch]、ls path [watch]、ls2 path [watch]、get path [watch]
查询某个节点,并设置watcher监听(监听创建节点、修改数据、删除节点),zk中的watcher是一次性的,用完就销毁
stat:查询某个节点的详细信息
ls:查询某个节点下的子节点
ls2 = stat + ls
get:在stat的基础上,增加了节点存储的数据
举例:
①stat /test/test01 watch:设置监听器
②stat /dubbo:不设置监听器
cZxid = 0x20e5,节点被创建时的事务ID
ctime = Thu Jun 20 09:38:17 CST 2019,节点创建时间
mZxid = 0x20e5,最近一次更新时的事务ID
mtime = Thu Jun 20 09:38:17 CST 2019,最近一次更新的时间
pZxid = 0x709a1c,该节点的子节点最近一个被修改的事务ID,新增、删除子节点都会影响这个值,修改子节点数据不会影响这个值
cversion = 553,子节点版本号
dataVersion = 0,数据版本号
aclVersion = 0,ACL版本号(access control list,访问控制列表)
ephemeralOwner = 0x0,创建临时节点的事务ID,如果是持久节点,则该值为0x0
dataLength = 0,当前节点的数据长度
numChildren = 553,当前节点的子节点数目
③get stat
在上面基础上,增加了节点存储的数据
3.set path data [version]、getAcl path、setAcl path acl、setquota -n|-b val path、listquota path
①set path data [version]
设置节点的数据,关于version,要么不加,如果加version,就必须和当前节点dataVersion一样
②
getAcl path:获取该节点的权限信息
setAcl path acl:设置该节点的权限信息
③setquota -n|-b val path:给该节点分配配额,超过配额以后只会日志报错,还是会成功,所以。。。
- n:可选,表示子节点的最大个数
- b:可选,表示数据值的最大长度
- val:子节点最大个数或数据值的最大长度
- path:节点路径
listquota path:获取该节点的配额信息
Output quota for /test/test01/test001 count=2,bytes=-1:表示当前节点限制子节点个数为2,不限制数据大小
Output stat for /test/test01/test001 count=1,bytes=4:表示当前节点有一个子节点,数据大小为4字节
4.delquota [-n|-b] path、delete path [version]、rmr path
delquota [-n|-b] path:删除该节点的配额
delete path [version]:删除该节点,如果有子节点,则无法删除
rmr path:删除该节点,有子节点,也一起删除
5.剩下的命令
history:查看历史命令
redo cmdno:重新执行第几编号的命令
printwatches on|off:是否打印watch信息
sync path:重新同步leader节点数据,保证数据是最新的
addauth scheme auth:设置认证权限
quit:退出zk
close:关闭当前连接
connect host:port:连接zk服务器