查看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命令:
get /test
刪除命令:
delete /test
set修改:
set /test "ricky"
退出客戶端
quit
鑒權Acll對單用戶:addauth digest user:pwd
設置Acl 給digtest服務注意這個digtest服務我create /digtest "relativestring" 創建的
修改Acl: setAcl 節點名 auth:用戶名:權限
查詢Acl: getAcl /noacl
語法:
addauth digest <user>:<password> setAcl <path> auth:<id>:<acl>
Acl對ip/host
可使用英文逗號拼接多個ip設置解決:
setAcl /node ip:192.168.1.1:cdrwa,ip:192.168.1.2:cdrwa,ip:192.168.1.3:cdrwa
[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>:<id>:<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
更多參考官網:http://zookeeper.apache.org/doc/current/zookeeperStarted.html