④分布式鎖 類似線程鎖:調(diào)用資源時(shí)其他調(diào)用時(shí)阻塞狀態(tài)
⑤集群管理: 保證數(shù)據(jù)的強(qiáng)一致性
目前來(lái)看 zookeeper是數(shù)據(jù)結(jié)構(gòu)中的tree結(jié)構(gòu)
可以創(chuàng)建持久節(jié)點(diǎn).臨時(shí)節(jié)點(diǎn)和順序節(jié)點(diǎn)
create -e/-s 臨時(shí)節(jié)點(diǎn)和順序節(jié)點(diǎn)
create [-s] [-e] path data acl
set node data version 修改節(jié)點(diǎn)
delete node version 刪除節(jié)點(diǎn)
增刪改 在刪改的時(shí)候加上版本號(hào) 會(huì)實(shí)現(xiàn)樂(lè)觀鎖
watcher機(jī)制 監(jiān)控節(jié)點(diǎn)的增刪改 都會(huì)觸發(fā)watcher事件
父節(jié)點(diǎn)watch事件觸發(fā):
①NodeCreated : 綁定命令為 stat /path watch
②NodeDataChanged:
③NodeDeleted:
④NodeChildrenChanged:父節(jié)點(diǎn)使用ls path watch 子節(jié)點(diǎn)增加刪除時(shí)都會(huì)觸發(fā)此事件
!!ps: 所有綁定事件在觸發(fā)一次后都會(huì)失效,需要進(jìn)行重新綁定linux常用命令,子節(jié)點(diǎn)修改時(shí)只能在子節(jié)點(diǎn)綁定get path watch
watch使用場(chǎng)景:zk集群統(tǒng)一資源配置。當(dāng)修改主機(jī)節(jié)點(diǎn)信息時(shí)會(huì)觸發(fā)watch事件linux常用命令,修改其他節(jié)點(diǎn)信息,其他節(jié)點(diǎn)信息改變會(huì)觸發(fā)此節(jié)點(diǎn)watch事件進(jìn)而繼續(xù)修改其他節(jié)點(diǎn)配置信息如圖:
ACL:權(quán)限認(rèn)證列表 (access control list) 權(quán)限控制單
ACL命令行學(xué)習(xí):
命令這樣寫:
schema: 包含三種模式
world:任何人都可以訪問(wèn)
auth: 用戶名明文密碼訪問(wèn)
digest: 用戶名密文密碼訪問(wèn)
注冊(cè)用戶以及設(shè)置權(quán)限:
digest: 加密登陸
不上圖了
通過(guò)ip設(shè)置權(quán)限:
超級(jí)管理員:
vim zkServer.sh
/nohup 查找
"-Dzookeeper.DigestAuthenticationProvider.superDigest=super:g9oN2HttPfn8MMWJZ2r45Np/LIA=" \
super:superpw
重啟服務(wù) ./zkServer.sh restart 生效
zookeeper 四字命令:用于查看zookeeper各狀態(tài)
去官網(wǎng)看吧 還有白名單。
cd conf
vim zoo.cfg
搭建偽集群
啟動(dòng)每個(gè)服務(wù)器 連接2181端口:
./zkCli.sh -server localhost:2181 設(shè)置數(shù)據(jù)
切換./zkCli.sh -server localhost:2182 查詢數(shù)據(jù)