日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

zkCli使用手册

發(fā)布時間:2025/3/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zkCli使用手册 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
zkClient命令筆記




connect host:port 連接到其他的zk服務器,例:connect 192.168.174.222:2181
-------------------------------------------------------------------------------------------------------
get path [watch] 獲取某個節(jié)點的數(shù)據(jù),如果加上watch參數(shù),那么當這個節(jié)點內的數(shù)據(jù)發(fā)生變化的時候就會收到通知
例:直接獲取
[zk: localhost:2181(CONNECTED) 2] get /mpcapp/mpc3
789
cZxid = 0x4a00000057//創(chuàng)建時候的id
ctime = Wed Nov 30 15:32:16 CST 2016//創(chuàng)建時間
mZxid = 0x4a00000057//修改時候的id
mtime = Wed Nov 30 15:32:16 CST 2016//修改時間
pZxid = 0x4a00000057//持久化version
cversion = 0//創(chuàng)建時候的version
dataVersion = 0//修改后的version,每次修改這個version都會改變,剛創(chuàng)建的時候和cversion一樣
aclVersion = 0//###########################################
ephemeralOwner = 0x0//是否是永久的(有永久節(jié)點和臨時節(jié)點之分)
dataLength = 3//數(shù)據(jù)的長度
numChildren = 0//子節(jié)點數(shù)量
例:獲取的時候帶上watch參數(shù),這時候改變參數(shù)的內容(通過另外一個客戶端)
[zk: localhost:2181(CONNECTED) 4] get /mpcapp/mpc3 watch
789
cZxid = 0x4a00000057
ctime = Wed Nov 30 15:32:16 CST 2016
mZxid = 0x4a00000057
mtime = Wed Nov 30 15:32:16 CST 2016
pZxid = 0x4a00000057
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
如上,首先返回了數(shù)據(jù),這時候在另一個客戶端改變內容
WATCHER::


WatchedEvent state:SyncConnected type:NodeDataChanged path:/mpcapp/mpc3
打印出了內容改變的事件,這就是zookeeper給我們提供的監(jiān)聽功能了。
---------------------------------------------------------------------------------------------------------------------------------------


ls path [watch] 列出某個節(jié)點的子節(jié)點,如果加上watch,那么監(jiān)聽該節(jié)點的子節(jié)點的變化,比如多一個子節(jié)點,少了一個子節(jié)點的事件都會被監(jiān)聽到
例:直接列出某個節(jié)點的子節(jié)點
[zk: localhost:2181(CONNECTED) 5] ls /mpcapp
[mpc3]
例:加上watch參數(shù)
[zk: localhost:2181(CONNECTED) 6] ls /mpcapp watch
[mpc3]
然后給目錄下面增加一個節(jié)點
[zk: localhost:2181(CONNECTED) 7]?
WATCHER::


WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/mpcapp
打印出了子節(jié)點改變事件。 需要注意的是,在get和ls中使用watch的話永遠只注冊一次監(jiān)聽,也就是說內容改變一次后或者子節(jié)點改變一次后監(jiān)聽到了事件,在發(fā)生改變的話就不能監(jiān)聽到事件了
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
set path data [version] 修改某個節(jié)點的數(shù)據(jù),這個version參數(shù)是指你要修改的節(jié)點的數(shù)據(jù)的當前的version也就是dataVersion,如果兩個version不一致會報錯
例:[zk: localhost:2181(CONNECTED) 1] set /mpcapp/mpc2 aaa
cZxid = 0x4a0000005e
ctime = Wed Nov 30 16:06:07 CST 2016
mZxid = 0x4a00000064
mtime = Wed Nov 30 16:11:54 CST 2016
pZxid = 0x4a0000005e
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
例:加上version
[zk: localhost:2181(CONNECTED) 4] set /mpcapp/mpc2 aaa 1
cZxid = 0x4a0000005e
ctime = Wed Nov 30 16:06:07 CST 2016
mZxid = 0x4a00000067
mtime = Wed Nov 30 16:14:07 CST 2016
pZxid = 0x4a0000005e
cversion = 0
dataVersion = 2
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
剛才修改過一次,數(shù)據(jù)的dataVersion是1,所以在調用命令的時候也用1
-----------------------------------------------------------------------
rmr path 刪除某個節(jié)點,并刪除該節(jié)點下的所有子節(jié)點
-------------------------------------------------------------------------------------
setquota -n|-b val path 為某個節(jié)點設置配額(所謂的配額是指該節(jié)點的最大子節(jié)點數(shù)n,或者該節(jié)點的最大數(shù)據(jù)值的長度v) val就是要設置的配額的值
例:設置子節(jié)點最大數(shù)
[zk: localhost:2181(CONNECTED) 6] setquota -n 2 /mpcapp
Comment: the parts are option -n val 2 path /mpcapp
例:設置數(shù)據(jù)最大長度
[zk: localhost:2181(CONNECTED) 20] setquota -b 100 /mpcapp ? ??
Comment: the parts are option -b val 100 path /mpcapp
#這里遇到的問題是,一個節(jié)點只能設置n或者b不能同時設置n和b;設置了n的話b為-1,設置了b的話n為-1;待查明原因
#這里設置了最大值以后,設置超過最大值的子節(jié)點數(shù)量或者數(shù)據(jù)長度也能夠添加成功,但是會在但是會在${dataDir}/zookeeper.out中記錄警告信息


---------------------------------------------------------------------------------
listquota path 列出指定節(jié)點的最大值限制
例:[zk: localhost:2181(CONNECTED) 23] listquota /mpcapp ? ? ? ? ??
absolute path is /zookeeper/quota/mpcapp/zookeeper_limits
Output quota for /mpcapp count=-1,bytes=100
Output stat for /mpcapp count=3,bytes=9
-------------------------------------------------------------------------------------


delquota [-n|-b] path 刪除指定節(jié)點的子節(jié)點最大值或者數(shù)據(jù)長度最大值
--------------------------------------------------------------------------------------------
quit 退出
-----------------------------------------------------------------------------
printwatches on|off 這個命令執(zhí)行不了,不知道為什么
------------------------------------------------------------------------------------------
create [-s] [-e] path data acl 創(chuàng)建一個節(jié)點,帶-s那么這是一個臨時節(jié)點,在斷開連接后就銷毀,-e就會給創(chuàng)建的節(jié)點上面加上序列號(每個目錄有自己獨立的序列號) path是節(jié)點的路徑 data是節(jié)點的值
acl是節(jié)點的權限控制


權限主要有:
CREATE : 創(chuàng)建子節(jié)點
READ : 獲取節(jié)點數(shù)據(jù)和子節(jié)點列表
WRITE : 更新節(jié)點數(shù)據(jù)
DELETE : 刪除子節(jié)點
ADMIN : 設置節(jié)點ACL的權限


與授權相關的幾個概念:
shchema:權限模式,有IP和digest兩種
ID:授權對象?
schema為IP時,該值為具體的IP地址
scheme為digest時,該值為 userName:base64(sha1(userName:password))
zookeeper的javaAPI提供了一個工具類org.apache.zookeeper.server.auth.DigestAuthenticationProvider 可以快速生成加密的密文
permission:權限,指的就是上面所說的五種權限
最終的組合為: schema + ID + permission


例:創(chuàng)建節(jié)點
[zk: localhost:2181(CONNECTED) 31] create /mpcapp/mpc4 123
Created /mpcapp/mpc4
這個節(jié)點是永久的,斷開連接也不會刪除
例:創(chuàng)建臨時節(jié)點//臨時節(jié)點是不能有子節(jié)點的
[zk: localhost:2181(CONNECTED) 32] create -e /mpcapp/mpc5 555555
Created /mpcapp/mpc5
例:創(chuàng)建序號節(jié)點
[zk: localhost:2181(CONNECTED) 33] create -s /mpcapp/mpc6 55555544
Created /mpcapp/mpc60000000006
[zk: localhost:2181(CONNECTED) 34] create -s /mpcapp/mpc7 55555544
Created /mpcapp/mpc70000000007
[zk: localhost:2181(CONNECTED) 35]?
例:創(chuàng)建帶有權限的節(jié)點
[zk: localhost:2181(CONNECTED) 35] create /mpcapp/mpc8 ?88888 ip:192.168.174.139:crwda
Created /mpcapp/mpc8


[zk: localhost:2181(CONNECTED) 37] create /mpcapp/mpc9 99999 digest:hylexus:f4Myrgy6YlaWdo4lvv///2jgEDI=:crwad ??
Created /mpcapp/mpc9
----------------------------------------------------------------------------------------------------------------------------------


stat path [watch] 查看某個節(jié)點的狀態(tài)信息 加上watch參數(shù)后就會監(jiān)聽狀態(tài)改變
例:
[zk: localhost:2181(CONNECTED) 38] stat /mpcapp
cZxid = 0x4a00000054
ctime = Wed Nov 30 15:31:01 CST 2016
mZxid = 0x4a00000054
mtime = Wed Nov 30 15:31:01 CST 2016
pZxid = 0x4a0000007d
cversion = 12
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 8


--------------------------------------------------------------------------------------
close 關閉連接,一般退出的時候先關閉連接,然后quit


----------------------------------------------------------------------------------------


ls2 path [watch] 和ls用法功能一樣,唯一的區(qū)別就是列出子節(jié)點的同時列出了該節(jié)點的狀態(tài)信息


----------------------------------------------------------------------------------------------


history 列出命令歷史
----------------------------------------------------------------------------------------------------------
redo cmdno 該命令可以重新執(zhí)行指定命令編號的歷史命令,命令編號可以通過history查看
----------------------------------------------------------------------------------------
getAcl path 獲取某個節(jié)點的授權信息
例:
[zk: mpc6:2181(CONNECTED) 48] getAcl /mpcapp/mpc8
'ip,'192.168.174.139
: cdrwa


[zk: mpc6:2181(CONNECTED) 49] getAcl /mpcapp/mpc9
'digest,'hylexus:f4Myrgy6YlaWdo4lvv///2jgEDI=
: cdrwa


----------------------------------------------------------
setAcl path acl 設置某個節(jié)點的授權信息
例:
[zk: localhost:2181(CONNECTED) 0] setAcl /mpcapp/mpc2 digest:hylexus:f4Myrgy6YlaWdo4lvv///2jgEDI=:crwad?
cZxid = 0x4a0000005e
ctime = Wed Nov 30 16:06:07 CST 2016
mZxid = 0x4a00000068
mtime = Wed Nov 30 16:14:17 CST 2016
pZxid = 0x4a0000005e
cversion = 0
dataVersion = 3
aclVersion = 1
ephemeralOwner = 0x0
dataLength = 3
-------------------------------------------------------------------------------------------
delete path [version] 刪除一個節(jié)點,該節(jié)點下不能有子節(jié)點;version的就是指定dataVersion不一致不能刪除


-----------------------------------------------------------------------------------------------------------------


addauth scheme auth?
? ? schema:可取ip或digest
? ? auth
? ? ? ? schema==digest時為 userName:password
? ? ? ? schema==ip時為
------------------------------------------------------------------------------
sync path 立刻在服務器之間同步信息(個人理解是這樣的,還沒有確定)

總結

以上是生活随笔為你收集整理的zkCli使用手册的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。