阿里雲搭建Zookeeper集羣測試

配置參數說明

Zookeeper中的配置文件zoo.cfg中參數含義解讀如下:
1.tickTime =2000:通信心跳數,Zookeeper服務器與客戶端心跳時間,單位毫秒Zookeeper使用的基本時間,服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個tickTime時間就會發送一個心跳,時間單位爲毫秒。它用於心跳機制,並且設置最小的session超時時間爲兩倍心跳時間。(session的最小超時時間是2*tickTime)

2.initLimit =10:LF初始通信時限集羣中的Follower跟隨者服務器與Leader領導者服務器之間初始連接時能容忍的最多心跳數(tickTime的數量),用它來限定集羣中的Zookeeper服務器連接到Leader的時限。

3.syncLimit =5:LF同步通信時限集羣中Leader與Follower之間的最大響應時間單位,假如響應超過syncLimit * tickTime,Leader認爲Follwer死掉,從服務器列表中刪除Follwer。

4.dataDir:數據文件目錄+數據持久化路徑主要用於保存Zookeeper中的數據。

5.clientPort =2181:客戶端連接端口監聽客戶端連接的端口。

選舉機制

  1. 半數機制:集羣中半數以上機器存活,集羣可用。所以Zookeeper適合安裝奇數臺服務器。
  2. Zookeeper雖然在配置文件中並沒有指定Master和Slave。但是,Zookeeper工作時,是有一個節點爲Leader,其他則爲Follower,Leader是通過內部的選舉機制臨時產生的。
  3. 以一個簡單的例子來說明整個選舉的過程。
    假設有五臺服務器組成的Zookeeper集羣,它們的id從1-5,同時它們都是最新啓動的,也就是沒有歷史數據,在存放數據量這一點上,都是一樣的。假設這些服務器依序啓動,來看看會發生什麼,如圖
    在這裏插入圖片描述
    (1)服務器1啓動,此時只有它一臺服務器啓動了,它發出去的報文沒有任何響應,所以它的選舉狀態一直是LOOKING狀態。
    (2)服務器2啓動,它與最開始啓動的服務器1進行通信,互相交換自己的選舉結果,由於兩者都沒有歷史數據,所以id值較大的服務器2勝出,但是由於沒有達到超過半數以上的服務器都同意選舉它(這個例子中的半數以上是3),所以服務器1、2還是繼續保持LOOKING狀態。
    (3)服務器3啓動,根據前面的理論分析,服務器3成爲服務器1、2、3中的老大,而與上面不同的是,此時有三臺服務器選舉了它,所以它成爲了這次選舉的Leader。
    (4)服務器4啓動,根據前面的分析,理論上服務器4應該是服務器1、2、3、4中最大的,但是由於前面已經有半數以上的服務器選舉了服務器3,所以它只能接收當小弟的命了。
    (5)服務器5啓動,同4一樣當小弟。

集羣搭建

集羣的規劃

在這裏插入圖片描述

新建一個集羣的文件夾

在這裏插入圖片描述

準備三個zookeeper

在這裏插入圖片描述

zk1

創建data目錄和日誌目錄log
在這裏插入圖片描述
給數據目錄裏面新建一個myid文件
在這裏插入圖片描述
給myid裏面加入一個值爲 1 (同理zk2爲2 zk3爲3)

修改zk1/conf/zoo.cfg

#隔間時間的單位,以後它是配置時間的一個單位
tickTime=2000
# 10 * 2000 = 時間 初始化超時時間,和集羣裏面的機器交流,最大的間隔時間,若超過該時間,則認爲超時
initLimit=10
# 同步數據的超時時間,小弟從大佬裏面複製數據,超時的時間爲 5 * 2000 
syncLimit=5
# zookeeper 的數據目錄,三個zk 的數據目錄需要不同才行
dataDir=/usr/local/zk-cluster/zk1/data
# zookeeper的日誌目錄
dataLogDir=/usr/local/zk-cluster/zk1/log
# zookeeper 的client的端口號
clientPort=2181
# 集羣的配置文件
#第幾個服務器(1,2,3來自數據目錄的一個myid文件,該文件裏面保存着當前集羣的標識(1,2,3))
# 後面的ip代表將綁定那個ip地址 第一個端口:代表在集羣內部,數據複製的接口 第二個端口代表:選舉端口
server.1=192.168.110.121:2888:3888
server.2=192.168.110.121:2889:3889  (服務器的話就改爲內網IP)
server.3=192.168.110.121:2887:3887

注意上面配置文件的最後,如果是雲服務器就寫成內網IP !!!

zk2 zk3

創建data目錄和日誌目錄log
在這裏插入圖片描述
在這裏插入圖片描述
給數據目錄裏面新建一個myid文件並給值爲2
在這裏插入圖片描述
給數據目錄裏面新建一個myid文件並給值爲3
在這裏插入圖片描述

修改zk2 、zk3 的配置文件,和zk1一樣,注意data和log目錄有輕微變動;端口zk2:2182,
zk3:2183; 然後就可以進行測試了!(服務器的話要注意把配置最後的IP改爲內網IP)

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