zookeeper 這樣的設計其實是有它自身的原因的。通過前面對 zookeeper 的配置可以看出,對 zookeeper 集群進行配置的時候,它的配置文件是完全相同的(對於集群偽分布模式來說,只有很少的部分是不同的)。這樣的配置方使得在部署 zookeeper 服務的時候非常地方便。另外,如果伺服器使用不同的配置檔案,必須要確保不同配置檔案中的伺服器列表相匹配。
[size=xx-large]基礎配置[/size]
最低配置要求中必須配置的引數如下:
#監聽客戶端連線的埠
clientport
儲存記憶體中資料庫快照的位置
datadir
#基本事件單元,以毫秒為單位。它用來控制心跳和超時,預設情況下最小的會話超時時間為兩倍的 ticktime
ticktime
[size=xx-large]高階配置[/size]
#這個操作將管理機器把事務日誌寫入到「 datalogdir 」所指定的目錄,而不是「 datadir 」所指定的目錄。這將允許使用乙個專用的日誌裝置並且幫助我們避免日誌和快照之間的競爭。,應該謹慎地選擇日誌存放的位置,使用專用的日誌儲存裝置能夠大大地提高系統的效能,如果將日誌儲存在比較繁忙的儲存裝置上,那麼將會在很大程度上影響系統的效能。
datalogdir=/***/yyy
#這個操作將限制連線到 zookeeper 的客戶端的數量,限制併發連線的數量,它通過 ip 來區分不同的客戶端。此配置選項可以用來阻止某些類別的 dos 攻擊。將它設定為 0 或者忽略而不進行設定將會取消對併發連線的限制。
maxclientcnxns
#最小的會話超時時間以及最大的會話超時時間。其中,最小的會話超時時間預設情況下為 2 倍的 ticktme 時間,最大的會話超時時間預設情況下為 20 倍的會話超時時間。在啟動時,系統會顯示相應資訊
minsessiontimeout 和 maxsessiontimeout
[size=xx-large]集群配置[/size]
#此配置表示,允許 follower (相對於 leader 而言的「客戶端」)連線並同步到 leader 的初始化連線時間,它以 ticktime 的倍數來表示。當超過設定倍數的 ticktime 時間,則連線失敗。
initlimit
#此配置表示, leader 與 follower 之間傳送訊息,請求和應答時間長度。如果 follower 在設定的時間內不能與 leader 進行通訊,那麼此 follower 將被丟棄。
synclimit
Zookeeper系列二 Zookeeper原理
從擴充套件性開始講起,在zk中存在的角色有leader,follower,observer。zk是讀寫分離的,所有的寫都會壓到leader上面,讀操作可以在follower上面完成。只有follower才能選擇,observer比follower級別還低。observer只是為了放大查詢能力。乙個集...
zookeeper(二)zookeeper單機啟動
其實都不用想單機邏輯肯定非常簡單,畢竟一台伺服器,很多都很好實現。整個流程圖如下 其中箭頭中的數字是呼叫的順序,橫向表示在同乙個方法中,而黃色區域為該方法的注釋。單機啟動的整個體系就是這個展開的。從啟動項就能明白,我們指定了配置檔案啟動,所以肯定是把配置檔案的引數解析出來,然後載入到記憶體中,最後初...
Zookeeper系列 Leader選舉
為了徹底搞懂zk選舉leader的過程,需要在windows本地搭建乙個偽集群出來,通過實際操作,觀察集群的節點的變化。但是在實操過程中,發現windows搭建的一些坑,這記錄下。1.參考此部落格進行搭建,2.依次啟動,啟動後,無法使用zkserver.cmd status命令,無法觀察哪乙個節點是...