zookeeper的配置項詳解

ooKeepeer的功能特性是通過ZooKeeper配置文件來進行控制管理(默認zoo.cfg配置文件)的。詳細介紹ZooKeeper配置文件中每一項配置的功能,以及默認值。詳細介紹如下:

clientPort

監聽客戶端連接的端口。如下:

clientPort=2181


dataDir

存儲內存中數據庫快照的位置。及存放ZooKeeper的配置信息。如:

# 指定數據目錄
dataDir=/root/zookeeper-3.3.1/data


tickTime

基本時間單元,以毫秒爲單位。它用來控制心跳和超時,默認情況下最小的會話超時時間爲兩倍的tickTime。

# 指定心跳時間爲2000毫秒(2秒)
tickTime=2000


dataLogDir

這個操作讓管理機器把事務日誌寫入“dataLogDir”所指定的目錄中,而不是“dataDir”所指定的目錄。這將允許使用一個專用的日誌設備,並且幫助我們避免日誌和快照之間的競爭。配置如下:

dataLogDir=/root/zookeeper-3.3.1/log/data_log


maxClientCnxns

限制連接到ZooKeeper的客戶端數量,並且限制併發連接數量,它通過IP來區別不同的客戶端。此配置選項可用來阻止某些類別的Dos攻擊。將maxClientCnxns設置爲0或忽略而不進行設置將會取消對併發連接的限制。如下將maxClientCnxns設置爲1:

maxClientCnxns=1

啓動ZooKeeper之後,首先用一個客戶端連接到ZooKeeper服務器之上。之後若有第二個客戶端嘗試對ZooKeeper進行連接,或者有某些隱式的對客戶端的連接操作,將會觸發ZooKeeper的上述配置。


minSessionTimeout和maxSessionTimeout

最小的會話超時時間和最大的會話超時時間。在默認情況下,最小的會話超時時間爲2倍的tickTime,最大的會話超時時間爲20倍的tickTime超時時間。

minSessionTimeout=8000
maxSessionTimeout=20000


initLimit

允許follower(相對於leader而言的“客戶端”)連接並同步到leader的初始化連接時間,它是以tickTime的倍數來表示的。當初始化連接時間超過設置倍數的tickTime時間時,則連接失敗。這個配置項是用來配置 Zookeeper 接受客戶端(這裏所說的客戶端不是用戶連接 Zookeeper 服務器的客戶端,而是 Zookeeper 服務器集羣中連接到 Leader 的 Follower 服務器)初始化連接時最長能忍受多少個心跳時間間隔數。當已經超過 10 個心跳的時間(也就是 tickTime)長度後 Zookeeper 服務器還沒有收到客戶端的返回信息,那麼表明這個客戶端連接失敗。總的時間長度就是 5*2000=10 秒

initLimit=5


syncLimit

這個配置項標識 Leader 與 Follower 之間發送消息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是 2*2000=4 秒

syncLimit=4


server.A=B:C:D:

其中 A 是一個數字,表示這個是第幾號服務器;B 是這個服務器的 ip 地址;C 表示的是這個服務器與集羣中的 Leader 服務器交換信息的端口;D 表示的是萬一集羣中的 Leader 服務器掛了,需要一個端口來重新進行選舉,選出一個新的 Leader,而這個端口就是用來執行選舉時服務器相互通信的端口。如果是僞集羣的配置方式,由於 B 都是一樣,所以不同的 Zookeeper 實例通信端口號不能一樣,所以要給它們分配不同的端口號。

server.1=127.0.0.1:8880:7770


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