集羣安裝對應依賴於上一篇博客中ZK單檯安裝相關目錄算法
由於有3個節點,分別設置三個配置文件.session
zk1.cfg zk2.cfg zk3.cfg日誌
對應zk1.cfg的配置爲:server
tickTime屬性做爲是對應session保存時間爲這個時間的2倍,單位毫秒隊列
其中initLimit 參數爲:Follower節點啓動的時候,會到leader節點同步數據,領導者端只容許在這個設置的時間內同步完數據,不然不任務加入zk隊列中.ip
syncLimit 爲領導者按期去檢查時間其下節點是否狀態還正常.同步
另外:還須要配置dataLogDir 參數,在生產環境下必定要配置.是記錄事物日誌的.這個會單獨掛載到一個磁盤上.博客
dataDir 爲對應主機的數據文件夾.it
由於有三臺zk,因此有三個serverio
server.1 server.2 server.3 其中數據 1 2 3 就是對應節點的id號,由於這個id值做爲標識,分別在對應文件夾中記錄對應id的內容.
對應配置文件zk1.cfg,zk2.cfg,zk3.cfg中對應這部份內容是相同的:
其餘屬性按各自內容配置
這裏須要特別注意:
在集羣環境下,須要在對應的文件夾下創建一個myid 文件(touch myid)
裏面內容分別爲server.Id的值,
好比,zk1文件夾下,myid 內容爲 1 依次類推,分別爲 2 3
上述須要特別注意的是對應dataDir 屬性配置以及server.1 server.2 server.3 的相關配置.
上述:server 命名中 ip:port1:port2
其中第一個端口號爲zk 中各服務通訊的端口號,是leader與Follower之間通訊的端口號, 第二個端口號爲zk與zk之間通訊的端口號.
好比第1個端口:主從之間的數據同步
好比第二個端口,在zk與zk之間須要投票,其中第二個端口是這個做用,這個是zk與zk間的通訊.
配置完,啓動對應zk
後面配置文件不用輸入路徑,zk會自動的去conf中去找對應文件
集羣環境下,自動根據特定算法肯定主機或者從機:
集羣環境下,只有最少啓動2臺ZK,才能登錄客戶端...
使用telnet 命令可查看對應主機內容:
以下這臺爲從機follower:
以下的爲Leader
使用ls2 查看對應節點詳細信息:
對應參數:
cZxid 爲節點建立的時候事物id標識
ctime 爲建立時間
mZxid 爲節點修改的事物id
mtime 修改時間
pZxid --刪除或新增修改這個東西
cversion 當前子節點修改過,這個屬性會改變,作累加操做
dataVersion 好比使用set 命令,這個會增長.
aclVersion 節點權限發生變化後,對應值也會變動 ---對應臨時節點須要經過對應sessionId肯定對應節點.
ephemeralOwner 建立臨時節點的sessionId
dataLength 數據長度
numChildren 子節點長度
臨時節點不能建立子節點...
至此:zk集羣建立完畢.