03_Zookeeper基本數據模型及基本命令操作
【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基本數據模型及基本命令操作