上一篇介紹了ZK的安裝以及集群的搭建,這只能算是個軟件安裝過程,具體是做什么的、怎么用也沒有做解釋,這一篇中博主就自己的私人理解簡單寫一下:
1、是什么:
a、Zookeeper是一個分布式協調服務,是一個中間件。
b、能提供主從協調、服務器節點控制、統一配置管理、分布式共享鎖、統一名稱服務等功能,比較有名的是大數據以及dubbo中服務的注冊以及發現。
c、本質上只是管理、讀取用戶提交的數據,並為數據提供監聽服務。
2、應用場景:
大數據
服務注冊與發現
等等
3、一些概念:
a、 ZK的角色:
1、leader(主節點) ,不是固定的,啟動后根據選舉算法選出
2、follower(從節點)
b、ZK數據結構
1、一顆與目錄結構類似的樹,根節點為"/",子節點為root下的 “/child1”、“/child2”等
2、樹的每個節點為zNode,具有唯一的路徑標識
3、每個zNode節點可以包含數據和子節點
4、通俗來說,key就是目錄結構的寫法,以此也可以表達父子關系
5、節點分為短暫節點(斷開連接刪除)與永久節點(斷開連接不刪除)
create -e /root
4、zkcli的簡單使用
a、安裝以及啟動 點擊打開鏈接
b、控制台客戶端
打開客戶端: root@ubuntu15:/usr/local/zookeeper-3.4.10/bin# ./zkCli.sh
查看命令:
[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
stat path [watch]
set path data [version]
ls path [watch]
delquota [-n|-b] path
ls2 path [watch]
setAcl path acl
setquota -n|-b val path
history
redo cmdno
printwatches on|off
delete path [version]
sync path
listquota path
rmr path
get path [watch]
create [-s] [-e] path data acl
addauth scheme auth
quit
getAcl path
close
connect host:port
[zk: localhost:2181(CONNECTED) 1]
切換節點:
[zk: localhost:2181(CONNECTED) 1] connect 192.168.0.16:2181
[zk: 192.168.0.16:2181(CONNECTED) 2]
創建與讀取數據:
[zk: 192.168.0.16:2181(CONNECTED) 2] ls
[zk: 192.168.0.16:2181(CONNECTED) 3] ls /
[zookeeper]
[zk: 192.168.0.16:2181(CONNECTED) 4] create /child1 thisischild
Created /child1
[zk: 192.168.0.16:2181(CONNECTED) 5] ls /
[zookeeper, child1]
[zk: 192.168.0.16:2181(CONNECTED) 6] create /child1/grandSon this is grandson
Created /child1/grandSon
[zk: 192.168.0.16:2181(CONNECTED) 7] ls child1
Command failed: java.lang.IllegalArgumentException: Path must start with / character
[zk: 192.168.0.16:2181(CONNECTED) 8] ls /child1
[grandSon]
[zk: 192.168.0.16:2181(CONNECTED) 9] get /child1
thisischild
cZxid = 0x100000006
ctime = Thu Jul 05 00:30:41 PDT 2018
mZxid = 0x100000006
mtime = Thu Jul 05 00:30:41 PDT 2018
pZxid = 0x100000007
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 4
numChildren = 1
5、java驅動提供的API