1. 程式人生 > >03_Zookeeper基本數據模型及基本命令操作

03_Zookeeper基本數據模型及基本命令操作

dubbo服務 消費者 點數據 圖片 配置文件 查看 變化 -s mas

【Zookeeper基本數據模型及註意點】

技術分享圖片

* zk的數據模型可以類比為Linux的文件目錄,是一種樹狀結構,如:/dubbo/com.service.DemoService/provider....

* 每一個節點都稱之為znode,它可以有子節點,也可以有數據。

* 每個節點分為臨時節點和永久節點,臨時節點在客戶端斷開連接後消失。

* 每個zk節點都有各自的版本號,可以通過命令行來顯示節點信息

* 每當節點數據發生變化,那麽該節點的版本號會累加(樂觀鎖)。

* 刪除/修改過時節點,版本號不匹配會報錯。

* 每個zk節點存儲的數據不宜過大,不超過幾k。

* 節點可以設置ACL,可以通過權限來限制用戶的訪問。

【Zookeeper數據模型基本操作】

【 zkServer.sh 相關 】

[ 啟動zkServer ]

//進入zk的bin目錄:cd /zookeeper-3.4.8/bin
./zkServer.sh start

[ 停止zkServer ]

./zkServer.sh stop

[ 重啟zkServer ]

./zkServer.sh restart

[ 查看zkServer狀態 ]

./zkServer.sh status

【zkCli.sh相關】

zkCli.sh 使用的基本格式

//-timeout:表示客戶端向zk服務器發送心跳的時間間隔,單位為毫秒

//-r:表示客戶端以只讀模式連接
//-server:指定指定zk服務器的IP與端口,zk默認的客戶端端口為2181
zkCli.sh -timeout 5000 -r -server ip:port

[ zkCli連接本地默認的zkServer ]

./zkCli.sh 

[ zkCli連接遠程的zkServer ]

./zkCli.sh -timeout 5000 -server 192.xxx.x.xxx:2181

【Zookeeper的作用】

1.master節點選舉,主節點掛了以後,從節點就會接手工作,並且保證這個節點是唯一的,這也是所謂的首腦模式,從而保證我們的集群是高可用的。

2.統一配置文件管理,即只需要一臺服務器,就可以把相同配置文件的內容同步更新到其他所有服務器(例如修改redis的統一配置)

3.發布與訂閱,類似消息隊列的MQ,dubbo服務提供者會把數據存在znode上,dubbo服務消費者會訂閱讀取這個數據。

4.提供分布式鎖,分布式環境中不同的進程之間爭取資源,類似多線程中的鎖。

5.數據強一致性,在集群中保證數據的強一致性,如圖:

技術分享圖片

03_Zookeeper基本數據模型及基本命令操作