查看zk 注册服务:在zk bin 下执行
sh zkCli.sh 计入客户端shell命令行
查看zk注册服务:ls / 或者递归查看 ls -s / 列出的为注册服务。
查询服务节点的信息:
get /zookeeper/config
zk 服务管理:
创建节点:
临时节点退出失效的创建:create -e /node_1/node_1_1 "node 1 1",默认不加-e为永久创建
创建顺序节点:
create -s /node_1/node_1_2 "node 2 2"
get命令:
退出客户端
quit
鉴权Acll对单用户:addauth digest user:pwd
设置Acl 给digtest服务注意这个digtest服务我create /digtest "relativestring" 创建的
修改Acl: setAcl 节点名 auth:用户名:权限
查询Acl: getAcl /noacl
语法:
[zk: localhost:2181(CONNECTED) 8] addauth digest tom2:tom2
[zk: localhost:2181(CONNECTED) 9] setAcl /digtest auth:tom2:cra
[zk: localhost:2181(CONNECTED) 10] getAcl /digtest tom2
‘digest,‘tom2:2iJM00A7+qkeKdEXt8Bhgq+IACw=
对zookeeper设置ACL属性
我们以zkCli为例,来说明zookeeper对ACL的设置。
使用zkCli时,ACL的格式由::三段组成。
schema:可以取下列值:world, auth, digest, host/ip
id: 标识身份,值依赖于schema做解析。
acl:就是权限:cdwra分别表示create, delete,write,read, admin
注意:zookeeper对权限的控制是znode级别的,不具有继承性,即子节点不继承父节点的权限。这种设计在使用上还是有缺陷的,因为很多场景下,我们还是会把相关资源组织一下,放在同一个路径下面,这样就会有对一个路径统一授权的需求。
schema world
zk help:
[zk: localhost:2181(CONNECTED) 25] zookeeper -help
ZooKeeper -server host:port cmd args
addauth scheme auth
close
config [-c] [-w] [-s]
connect host:port
create [-s] [-e] [-c] [-t ttl] path [data] [acl]
delete [-v version] path
deleteall path
delquota [-n|-b] path
get [-s] [-w] path
getAcl [-s] path
history
listquota path
ls [-s] [-w] [-R] path
ls2 path [watch]
printwatches on|off
quit
reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
redo cmdno
removewatches path [-c|-d|-a] [-l]
rmr path
set [-s] [-v version] path data
setAcl [-s] [-v version] [-R] path acl
setquota -n|-b val path
stat [-w] path
sync path