ZooKeeper-分布式利器(2)——CLI與節(jié)點(diǎn)

Zookeeper具有命令行界面(CLI)拒课,用于和ZooKeeper服務(wù)器集群的簡單交互,有助于調(diào)試和解決問題事示。要想使用ZooKeeper CLI早像,首先需要有運(yùn)行著的ZooKeeper服務(wù)器(可通過bin/zkServer運(yùn)行),然后運(yùn)行ZooKeeper客戶端肖爵。一旦客戶端成功連接服務(wù)端卢鹦,就可以使用以下命令對ZooKeeper進(jìn)行操作。

CLI基本命令

常用命令

1.創(chuàng)建節(jié)點(diǎn)

使用create命令劝堪,可以創(chuàng)建一個ZooKeeper節(jié)點(diǎn)冀自,

create [-s] [-e] path data acl

其中揉稚,-s 和 -e用來指定節(jié)點(diǎn)屬性,順序或臨時節(jié)點(diǎn)凡纳,若不指定-e窃植,則表示持久節(jié)點(diǎn);acl為權(quán)限控制荐糜。

1.1創(chuàng)建順序節(jié)點(diǎn)

使用 create -s /zk-sequence 123 命令 創(chuàng)建zk-sequence順序節(jié)點(diǎn)

順序節(jié)點(diǎn)zk-sequence0000000005

可以看到zk-sequence節(jié)點(diǎn)后面自動添加了一串?dāng)?shù)字

1.2創(chuàng)建臨時節(jié)點(diǎn)

使用create -e /zk-temp 123 命令創(chuàng)建zk-temp臨時節(jié)點(diǎn)

創(chuàng)建臨時節(jié)點(diǎn)

臨時節(jié)點(diǎn)在客戶端會話結(jié)束后巷怜,就會自動刪除,使用quit退出客戶端

退出客戶端

再使用客戶端連接服務(wù)端暴氏,并使用ls /命令查看根目錄下的節(jié)點(diǎn)

臨時節(jié)點(diǎn)消失

可以看到臨時節(jié)點(diǎn)zk-temp已經(jīng)消失了延塑。

2.讀取節(jié)點(diǎn)

讀取節(jié)點(diǎn)可以通過ls 和 get命令,ls命令可以列出ZooKeeper指定節(jié)點(diǎn)下的第一級的所有子節(jié)點(diǎn)答渔;get命令可以獲取ZooKeeper指定節(jié)點(diǎn)的數(shù)據(jù)內(nèi)容和屬性信息关带。

若獲取根節(jié)點(diǎn)下面的所有子節(jié)點(diǎn),使用ls / 命令即可 前文已經(jīng)用過了沼撕。

若想要獲取某個節(jié)點(diǎn)數(shù)據(jù)內(nèi)容 和 元數(shù)據(jù)(描述性信息)宋雏,使用get / 命令即可,如獲取前文創(chuàng)建的順序節(jié)點(diǎn)

get

3.更新節(jié)點(diǎn)

使用set命令可以更新指定節(jié)點(diǎn)的數(shù)據(jù)內(nèi)容务豺,用法如下

set path data [version]

更新節(jié)點(diǎn)操作

針對上面讀取的同一個節(jié)點(diǎn)磨总,更新節(jié)點(diǎn)后,可以看到dataVersion由0變?yōu)榱?

數(shù)據(jù)已更新

并且可以看到此節(jié)點(diǎn)的內(nèi)容數(shù)據(jù)由原來的“123”變?yōu)榱恕癲ata-update”

4.刪除節(jié)點(diǎn)

delete /path 刪除節(jié)點(diǎn)笼沥。

rmr /path? 刪除節(jié)點(diǎn)及子節(jié)點(diǎn)蚪燕。

刪除節(jié)點(diǎn)

可以看到 FirstZnode0000000001節(jié)點(diǎn)已經(jīng)被刪除。

總結(jié)概念

至此奔浅,對于ZooKeeper基本對象Znode節(jié)點(diǎn)和層次命名空間馆纳,我們已經(jīng)有了概念。

ZooKeeper提供的命名空間更像一個標(biāo)準(zhǔn)的文件系統(tǒng)汹桦。名稱是被“/”分割開的路徑元素序列鲁驶。ZooKeeper中的每個節(jié)點(diǎn)由路徑進(jìn)行唯一標(biāo)識。

ZooKeeper層次命名空間

不像標(biāo)準(zhǔn)的文件系統(tǒng)营勤,ZooKeeper命名空間中的每個Znode節(jié)點(diǎn)都有與之相關(guān)的內(nèi)容數(shù)據(jù)以及子節(jié)點(diǎn)灵嫌。它就像一個允許Znode既是文件同時也是目錄的文件系統(tǒng)。(ZooKeeper用來存儲協(xié)調(diào)數(shù)據(jù):狀態(tài)信息葛作、配置、位置信息等猖凛,每個節(jié)點(diǎn)存儲的數(shù)據(jù)通常是很小的赂蠢,以字節(jié)為單位。)我們使用術(shù)語Znode來稱呼ZooKeeper的節(jié)點(diǎn)辨泳。

Znode保有一個stat的結(jié)構(gòu)虱岂,包含了 數(shù)據(jù)修改的版本號玖院,ACL的變化,和時間戳信息 用來做緩存驗(yàn)證和協(xié)調(diào)更新第岖。每次znode的數(shù)據(jù)變化难菌,版本號的增加。舉個例子蔑滓,當(dāng)一個客戶端檢索數(shù)據(jù)郊酒,它也會收到數(shù)據(jù)的版本信息。

stat結(jié)構(gòu)

czxid. 節(jié)點(diǎn)創(chuàng)建時的zxid.

mzxid. 節(jié)點(diǎn)最新一次更新發(fā)生時的zxid.

ctime. 節(jié)點(diǎn)創(chuàng)建時的時間戳.

mtime. 節(jié)點(diǎn)最新一次更新發(fā)生時的時間戳.

dataVersion. 節(jié)點(diǎn)數(shù)據(jù)的更新次數(shù).

cversion. 其子節(jié)點(diǎn)的更新次數(shù).

aclVersion. 節(jié)點(diǎn)ACL(授權(quán)信息)的更新次數(shù).

ephemeralOwner. 如果該節(jié)點(diǎn)為臨時節(jié)點(diǎn), ephemeralOwner值表示與該節(jié)點(diǎn)綁定的session id. 如果該節(jié)點(diǎn)不是臨時節(jié)點(diǎn), ephemeralOwner值為0. 至于什么是臨時節(jié)點(diǎn), 請看前后的講述.

dataLength. 節(jié)點(diǎn)數(shù)據(jù)的字節(jié)數(shù).

numChildren. 子節(jié)點(diǎn)個數(shù).

znode節(jié)點(diǎn)的狀態(tài)信息中包含czxid和mzxid, 那么什么是zxid呢? ZooKeeper狀態(tài)的每一次改變, 都對應(yīng)著一個遞增的Transaction id, 該id稱為zxid. 由于zxid的遞增性質(zhì), 如果zxid1小于zxid2, 那么zxid1肯定先于zxid2發(fā)生. 創(chuàng)建任意節(jié)點(diǎn), 或者更新任意節(jié)點(diǎn)的數(shù)據(jù), 或者刪除任意節(jié)點(diǎn), 都會導(dǎo)致Zookeeper狀態(tài)發(fā)生改變, 從而導(dǎo)致zxid的值增加.

ZooKeeper也有臨時節(jié)點(diǎn)的概念,這些znode只存在于創(chuàng)建它的當(dāng)前會話狀態(tài)為活躍,一旦會話結(jié)束隧出,臨時節(jié)點(diǎn)也會消失扼劈。當(dāng)你想要實(shí)現(xiàn)斷開連接會被撤銷的事務(wù),臨時節(jié)點(diǎn)非常好用乾颁。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蚜迅,更是在濱河造成了極大的恐慌,老刑警劉巖俊抵,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谁不,死亡現(xiàn)場離奇詭異,居然都是意外死亡务蝠,警方通過查閱死者的電腦和手機(jī)拍谐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來馏段,“玉大人轩拨,你說我怎么就攤上這事≡合玻” “怎么了亡蓉?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長喷舀。 經(jīng)常有香客問我砍濒,道長,這世上最難降的妖魔是什么硫麻? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任爸邢,我火速辦了婚禮,結(jié)果婚禮上拿愧,老公的妹妹穿的比我還像新娘杠河。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布券敌。 她就那樣靜靜地躺著唾戚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪待诅。 梳的紋絲不亂的頭發(fā)上叹坦,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機(jī)與錄音卑雁,去河邊找鬼募书。 笑死,一個胖子當(dāng)著我的面吹牛序厉,可吹牛的內(nèi)容都是我干的锐膜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼弛房,長吁一口氣:“原來是場噩夢啊……” “哼道盏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起文捶,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤荷逞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后粹排,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體种远,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年顽耳,在試婚紗的時候發(fā)現(xiàn)自己被綠了坠敷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡射富,死狀恐怖膝迎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情胰耗,我是刑警寧澤限次,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站柴灯,受9級特大地震影響卖漫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜赠群,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一羊始、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧查描,春花似錦店枣、人聲如沸速警。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至长豁,卻和暖如春钧唐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背匠襟。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工钝侠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人酸舍。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓帅韧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親啃勉。 傳聞我的和親對象是個殘疾皇子忽舟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容