測試系統:CentOS6.5 64位apache
虛擬機:Vmware Workstation服務器
Zookeeper集羣節點數:3ssh
ZK角色
- Leader: 負責寫請求
- follower: 跟隨者,具備投票權,不然讀請求或轉發寫請求,具備投票權
- observer: 觀察者,不然讀請求,不具投票權
配置步驟
- apache官網下載stable版本的zookeeper,解壓命令
tar -zxvf zookeeper-3.4.10.tar.gz工具
![](http://static.javashuo.com/static/loading.gif)
- 將解壓的Zookeeper目錄移動到/usr/local目錄
命令:sudo mv zookeeper-3.4.10 /usr/local/
切換到目錄:/usr/local/zookeeper-3.4.10/conf測試
![](http://static.javashuo.com/static/loading.gif)
- 複製zoo_sample.cfg爲zoo.cfg文件,這個zookeeper的主控配置文件
命令:cp zoo_sample.cfg zoo.cfg
- 配置zoo.cfg文件
![](http://static.javashuo.com/static/loading.gif)
參數說明:code
- tickTime:心跳時間:客戶端與Zookeeper集羣節點之間通訊確認機制,保障高可用的特性
- initLimit:Zookeeper初始化運行的心跳數
- sysncLimit:客戶端發送請求和接受響應過程容許的心跳數
- dataDir:zookeeper的快照文件存儲目錄
- ClientPort:zookeeper的服務端口
配置Zookeeper集羣節點server
格式:server.id =ip:A:Bblog
- id:表示服務節點的編號
- ip:服務器節點的ip地址
- A:zookeeper集羣內部的通訊端口
- B:zookeeper集羣內部選舉端口
配置以下:ip
![](http://static.javashuo.com/static/loading.gif)
dataDir可自定義:不建議放入/tmp目錄,由於Linux重啓以後/tmp的數據可能丟失虛擬機
-
建立myid文件 在dataDir指定的目錄,建立myid文件,並存放與zookeeper定義的節點編號的值 命令:echo "1">myid
-
經過ssh將zookeeper配置好的文件目錄分發給zookeeper其餘節點服務器
命令:sudo scp -r zookeeper-3.4.10/ 192.168.174.144:/usr/local/
注意:修改myid文件,將內容更改成對應的編號
- 測試zookeeper集羣:最好關閉防火牆,不然會干擾:sudo service iptables stop
每一個節點經過bin目錄下的zkServer.sh start啓動,經過zkServer.sh status可查詢當前節點在Zookeeper集羣的角色
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
注意:只要當zoo.cfg配置的節點一半及以上的節點成功啓動,zookeeper才能正常工做
- Zookeeper安裝包自帶的zkCli客戶端工具進行測試 客戶端鏈接Zookeeper集羣命令:zkCli.sh -timeout 5000 -server 192.168.174.143:2181
參數說明:
- timeout:設置客戶端與zookeeper集羣通訊的Session有效期
- server:指定服務節點地址
- 192.168.174.143:2181:鏈接zookeeper集羣的節點地址和服務端口
![](http://static.javashuo.com/static/loading.gif)