1. zookeeper特性
- 上一章講解了怎么配置集群芋哭,涉及到了一個(gè)關(guān)鍵的配置文件zoo.cfg**
zoo.cfg
tickTime=2000 #client-server 通信心跳時(shí)間(單位毫秒)
initLimit=5 #leader-follower初始通信時(shí)限
syncLimit=5 #leader-follower 同步通信時(shí)限
dataDir=/tmp #數(shù)據(jù)文件保存
clientPort=2181 #客戶端鏈接端口
數(shù)據(jù)模型
-
zookeeper的數(shù)據(jù)模型和文件系統(tǒng)類似,每一個(gè)節(jié)點(diǎn)稱為:znode惋砂,是zookeeper的最小數(shù)據(jù)單元孝宗。每一個(gè)znode上都可以保存數(shù)據(jù)和掛在子節(jié)點(diǎn)。從而構(gòu)成一個(gè)層次化的屬性結(jié)構(gòu)忍抽。
數(shù)據(jù)結(jié)構(gòu)圖
節(jié)點(diǎn)特性
- 持久化節(jié)點(diǎn):節(jié)點(diǎn)創(chuàng)建后會(huì)一直存在zookeeper服務(wù)器上,直到主動(dòng)刪除
- 持久化序列節(jié)點(diǎn):每個(gè)節(jié)點(diǎn)都會(huì)為它的一級(jí)子節(jié)點(diǎn)維護(hù)一個(gè)順序
- 臨時(shí)節(jié)點(diǎn):臨時(shí)節(jié)點(diǎn)的生命周期和客戶端的==會(huì)話==保持一致董朝。當(dāng)客戶端會(huì)話失效鸠项,該節(jié)點(diǎn)自動(dòng)清理
- 臨時(shí)有序節(jié)點(diǎn):在臨時(shí)節(jié)點(diǎn)上多了一個(gè)順序特性
==臨時(shí)節(jié)點(diǎn)不能創(chuàng)建子節(jié)點(diǎn)==
會(huì)話
會(huì)話
Watcher
zookeeper提供了分布式數(shù)據(jù)發(fā)布/訂閱,zookeeper允許客戶端向服務(wù)器注冊(cè)一個(gè)watcher監(jiān)聽子姜。當(dāng)服務(wù)端的節(jié)點(diǎn)觸發(fā)指定事件的時(shí)候會(huì)觸發(fā)watcher祟绊。服務(wù)端會(huì)向客戶端發(fā)送一個(gè)事件通知。
==watcher的通知是一次性的,一旦觸發(fā)一次通知后牧抽,該watcher就失效==
ACL
zookeeper提供控制節(jié)點(diǎn)訪問(wèn)權(quán)限的功能嘉熊,用戶有效的保證zookeeper中數(shù)據(jù)的安全性。避免誤操作而導(dǎo)致系統(tǒng)出現(xiàn)重大事故
CREATE/READ/WRITE/DELETE/ADMIN
2. zookeeper客戶端命令操作
- create [-s] [-e] path data acl
-s 表示節(jié)點(diǎn)是否有序
-e 表示節(jié)點(diǎn)是否為臨時(shí)節(jié)點(diǎn)
默認(rèn)情況下扬舒,是持久化節(jié)點(diǎn)
ls / 查看節(jié)點(diǎn)
mark
mark
mark
- get path [watch]
獲取指定path的信息
mark
- set path data [version]
修改節(jié)點(diǎn)path對(duì)應(yīng)的data
mark
- delete path [version]
刪除節(jié)點(diǎn)
更多命令使用help可以看到更多
mark
state信息
cversion =0 #子節(jié)點(diǎn)版本號(hào)
aclVersion=0 #表示當(dāng)前acl的版本號(hào)记舆,修改節(jié)點(diǎn)的權(quán)限
dataVersion=1 #表示的是當(dāng)前節(jié)點(diǎn)數(shù)據(jù)的版本號(hào)
czxid #節(jié)點(diǎn)被創(chuàng)建事務(wù)id
mzxid #節(jié)點(diǎn)最后一次被更新的事務(wù)ID
pzxid #當(dāng)前節(jié)點(diǎn)下的子節(jié)點(diǎn)最后一次被修改時(shí)的事務(wù)ID
ctime #創(chuàng)建時(shí)間
mtime #修改時(shí)間
ephemeralOwner=0x0 #創(chuàng)建臨時(shí)節(jié)點(diǎn)的時(shí)候,會(huì)有一個(gè)sessionId,該值存儲(chǔ)的就是sessionId
dataLength=3 #數(shù)據(jù)值的長(zhǎng)度
numChildren=0 #子節(jié)點(diǎn)總數(shù)
--黑白 20170808 0:02