Zookeeper(1)---初識

一.ZK簡述

Zookeeper,它是一個分佈式程序的協調服務,它主要是用來解決分佈式應用中的一些數據管理問題,比如集羣管理,分佈式應用配置,分佈式鎖,服務註冊/發現等等。

它是一個類似於文件系統的樹狀結構。每個目錄被稱爲znode,可以刪除目錄,添加子目錄這些操作,不同的是每個znode上面都是存儲數據的,如下圖:

 

 客戶端可以監聽這些目錄節點,當結點數據發生改變,節點被刪除,增加子節點時,zk會通知客戶端。以此來實現很多分佈式數據管理的操作。比如我們把服務的一些配置數據放在某個節點上面,所有的該服務都監聽這個節點,一旦節點數據(配置)發生變化,所有的該服務都會收到通知,然後各自更新配置,就不用每個服務都手動去更新配置了。

 

ZK的節點有四種類型的:

 

持久節點(PERSISTENT):客戶端與ZK斷開連接之後,節點依舊存在

 

持久序號節點(PERSISTENT_SEQUENTIAL):同持久節點,只是ZK會給該結點進行順序編號

 

臨時節點(EPHEMERAL):客戶端與ZK斷開連接之後,節點會被刪除

 

臨時序號節點(EPHEMERAL_SEQUENTIAL):同臨時節點,只是ZK會給該結點進行順序編號

 

 

二、安裝和配置

 

簡單有個認識之後,安裝來體驗一下:

 

ZKjava開發的,所以先要有JDK

 

https://zookeeper.apache.org/releases.html#download

 

下載解壓這個就贅述了

 

解壓之後的/conf目錄下面有默認的配置文件zoo_sample.cfg

 

重命名或者複製一份出來:cp zoo_sample.cfg  zoo.cfg

 

然後去解壓後的bin目錄下面,執行zkServer.sh腳本 默認會使用zoo.cfg配置文件;或者指定配置文件啓動:./zkServer.sh start ../conf/zoo.cfg 如果是windows環境那麼就執行cmd的腳本就可以了。

 

 

 

 

至此zk服務就啓動了,默認的端口號2181.

現在我們再回來看看zk的一些配置信息(zoo.cfg文件):

 

tickTime=2000   zookeeper時間配置中的基本單位 (毫秒)

 

initLimit=10 允許follower初始化連接到leader最大時長,它表示tickTime時間倍數 即:initLimit*tickTime

 

syncLimit=5 允許follower與leader數據同步最大時長,它表示tickTime時間倍數 

 

dataDir=/tmp/zookeeper  數據存儲目錄

 

clientPort=2181   對客戶端提供的端口號

 

maxClientCnxns=60 單個客戶端與zookeeper最大併發連接數

 

autopurge.snapRetainCount=3  保存的數據快照數量,之外的將會被清除

 

autopurge.purgeInterval=1  自動觸發清除快照任務時間間隔超過autopurge.snapRetainCount配置的,小時爲單位。默認爲0,表示不自動清除。

 

 

三、體驗

 

先使用自帶客戶端來連接玩玩 bin目錄下面./zkCli.sh

 

連接之後可以使用help查看指令

 

 

create [-s] [-e] [-c] [-t ttl] path [data] [acl] 創建節點 -s序號節點 -e臨時節點

Delete 刪除節點(有子節點不能刪除)

Deleteall 刪除節點(包含子節點)

Delquota [-n] [-b] 刪除配額(比如節點設置了數據大小限制) -n數量  -b 大小

get [-s] [-w] path 查看節點 -s包含狀態 -w添加監聽

getAcl [-s]  path 獲取權限配置

History  查看歷史指令

listquota path 當前節點有哪些配額

ls [-s] [-w] [-R] path 查看所有子節點 -R遞歸查看所有子節點

removewatches path [-c|-d|-a] [-l]   刪除監聽

set [-s] [-v version] path data  修改數據

setAcl [-s] [-v version] [-R] path acl 添加/修改權限

setquota -n|-b val path   設置配額

stat [-w] path   查看狀態

sync path 強制同步節點數據

 

知道了這些命令之後就可以玩一下了:

Ls  /  查看根節點,可以看到默認就有一個zookeeper節點

 

 

注意點:

1.創建節點要以/開始

 

 

 2.創建節點只能一級一級的創建

 

 3.臨時節點不能創建子節點

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章