1. 程式人生 > >ZooKeeper系列之四:ZooKeeper的配置

ZooKeeper系列之四:ZooKeeper的配置

ZooKeeper 的功能特性通過 ZooKeeper 配置檔案來進行控制管理( zoo.cfg 配置檔案)。 ZooKeeper 這樣的設計其實是有它自身的原因的。通過前面對 ZooKeeper 的配置可以看出,對 ZooKeeper 叢集進行配置的時候,它的配置文件是完全相同的(對於叢集偽分佈模式來說,只有很少的部分是不同的)。這樣的配置方使得在部署 ZooKeeper 服務的時候非常地方便。另外,如果伺服器使用不同的配置檔案,必須要確保不同配置檔案中的伺服器列表相匹配。

在設定 ZooKeeper 配置文件的時候,某些引數是可選的,但是某些引數是必須的。這些必須的引數就構成了 ZooKeeper

配置文件的最低配置要求。

下面是在最低配置要求中必須配置的引數:

1 )最低配置

clientPort

監聽客戶端連線的埠;

dataDir

儲存記憶體中資料庫快照的位置;

注意 應該謹慎地選擇日誌存放的位置,使用專用的日誌儲存裝置能夠大大地提高系統的效能,如果將日誌儲存在比較繁忙的儲存裝置上,那麼將會在很大程度上影響系統的效能。

tickTime

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

2 )高階配置

下面是高階配置要求中可選的配置引數,使用者可以使用下面的引數來更好地規定 ZooKeeper

的行為:

dataLogDir

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

#the location of the log file

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

這個操作將限制連線到 ZooKeeper 的客戶端的數量,限制併發連線的數量,它通過 IP 來區分不同的客戶端。此配置選項可以用來阻止某些類別的 Dos 攻擊。將它設定為 0 或者忽略而不進行設定將會取消對併發連線的限制。

例如,此時我們將 maxClientCnxns 的值設定為 1 ,如下所示:

#set maxClientCnxns

maxClientCnxns=1

啟動 ZooKeeper 之後,首先用一個客戶端連線到 ZooKeeper 伺服器之上。然後,當第二個客戶端嘗試對 ZooKeeper 進行連線,或者某些隱式的對客戶端的連線操作,將會觸發 ZooKeeper 的上述配置。系統會提示相關資訊,如下圖 1 所示:


1 ZooKeeper maxClientCnxns 異常

minSessionTimeout maxSessionTimeout

最小的會話超時時間以及最大的會話超時時間。其中,最小的會話超時時間預設情況下為 2 倍的 tickTme 時間,最大的會話超時時間預設情況下為 20 倍的會話超時時間。在啟動時,系統會顯示相應資訊,見下圖 2 所示,預設會話超時時間:


圖2 :預設會話超時時間

從上圖中可以看書, minSessionTimeout 以及 maxSessionTimeout 的值均為 -1 ,現在我們來設定系統的最小會話超時時間以及最大會話超時時間,如下所示:

#set minSessionTimeout

minSessionTimeout=1000

#set maxSessionTImeout

maxSessionTimeout=10000

在配置 minSessionTmeout 以及 maxSessionTimeout 的值的時候需要注意,如果將此值設定的太小的話,那麼會話很可能剛剛建立便由於超時而不得不退出。一般情況下,不能將此值設定的比 tickTime 的值還小。

3 )叢集配置

initLimit

此配置表示,允許 follower (相對於 leader 而言的“客戶端”)連線並同步到 leader 的初始化連線時間,它以 tickTime 的倍數來表示。當超過設定倍數的 tickTime 時間,則連線失敗。

syncLimit

此配置表示, leader follower 之間傳送訊息,請求和應答時間長度。如果 follower 在設定的時間內不能與 leader 進行通訊,那麼此 follower 將被丟棄。

-----

如有疑問請發Email至[email protected],謝謝!

相關推薦

ZooKeeper系列ZooKeeper配置

ZooKeeper 的功能特性通過 ZooKeeper 配置檔案來進行控制管理( zoo.cfg 配置檔案)。 ZooKeeper 這樣的設計其實是有它自身的原因的。通過前面對 ZooKeeper 的配置可以看出,對 ZooKeeper 叢集進行配置的時候,它的配置文件是完

ZooKeeper系列ZooKeeper字命令

ZooKeeper 支援某些特定的四字命令字母與其的互動。它們大多是查詢命令,用來獲取 ZooKeeper 服務的當前狀態及相關資訊。使用者在客戶端可以通過 telnet 或 nc 向 ZooKeeper 提交相應的命令。 ZooKeeper 常用四字命令見下表 1 所示:

ZooKeeper系列ZooKeeper命令列工具

當啟動 ZooKeeper 服務成功之後,輸入下述命令,連線到 ZooKeeper 服務: zkCli.sh –server 10.77.20.23:2181 連線成功後,系統會輸出 ZooKeeper 的相關環境以及配置資訊,並在螢幕輸出“ Welcome to

ZooKeeper系列ZooKeeper的一致性保證及Leader選舉

1)一致性保證 Zookeeper 是一種高效能、可擴充套件的服務。 Zookeeper 的讀寫速度非常快,並且讀的速度要比寫的速度更快。另外,在進行讀操作的時候, ZooKeeper 依然能夠為舊的資料提供服務。這些都是由於 ZooKeepe 所提供的一致性保證,它具有如下特點: 順序一致性

ZooKeeper系列ZooKeeper的安裝

ZooKeeper的安裝模式分為三種,分別為:單機模式(stand-alone)、叢集模式和叢集偽分佈模式。ZooKeeper 單機模式的安裝相對比較簡單,如果第一次接觸ZooKeeper的話,建議安裝ZooKeeper單機模式或者叢集偽分佈模式。 1)單機模式 首先,

ZooKeeper系列ZooKeeper資料模型、名稱空間以及節點的概念

ZooKeeper資料模型和層次名稱空間 提供的名稱空間與標準的檔案系統非常相似。一個名稱是由通過斜線分隔開的路徑名序列所組成的。ZooKeeper中的每一個節點是都通過路徑來識別。  下圖是Zookeeper中節點的資料模型,這種樹形結構的名稱空間操作方便且易於理解。

WSUS系列組策略配置

         登入AD伺服器,開啟伺服器管理器,點選工具,並選擇組策略管理; 新建一個OU並將需要下發策略的計算機拖至此處,右鍵OU選擇新建GPO並在此處連結; 輸入GPO的名稱,點選確定;

自己動手定製Chromium系列Chromium 58的一個編譯配置

aec_untrusted_delay_for_testing    Current value (from the default) = false      From //third_party/webrtc/modules/audio_processing/BUILD.

【只怕沒有幾個人能說清楚】系列碰撞信息、觸發信息的檢測

col lis 至少 one ati spa nbsp 觸發 trigge 碰撞器分為三種: static collider              靜態碰撞器 rigidbody collider            剛體碰撞器 kinematic rigidbody

MongoDB初探系列MongoDB與Java共舞

ever 文件 basic query find man mongodb next() 入學 因為版本號不同,可能API也有所不同。本次學習用的是3.0版本號。 1、使用的mongodb的jdbc驅動版本號為:mongo-java-driver-3.0.0.jar

網絡相關系列數據解析SAX方式解析XML數據

request nco nodename 新建 作用 call 其他 auto 文件內容 一、XML和Json數據的引入: 通常情況下。每一個須要訪問網絡的應用程序都會有一個自己的server。我們能夠向server提交數據,也能夠從server獲取數據。

Office 365 系列添加自定義域

office365 office 365自定義域名 office 365登錄地址簡化 在實際的公司企業環境中,為了簡化 Office 365 登陸地址、Exchange 郵箱地 址和 Lync 地址等就需要將自定義域添加到 Office 365 中,並在 Office 365 中管理該域。

Exchange 2013系列Exchange 2013安裝

Windows AD Exchange 這裏僅以ExchCas01為例進行安裝。插入安裝光盤,雙擊以進行安裝;這裏我選擇的是暫時不更新,點擊下一步;點擊下一步;許可協議,你敢不接受麽~下一步;因為我們是分角色部署,因此不使用推薦設置,下一步;選擇客戶端訪問角色,下一步;確定安裝文件夾,由於是實驗環

spring boot 系列spring boot 整合JPA

rom prop pos output UNC actor href ali div 上一篇我們講了spring boot 整合JdbcTemplate來進行數據的持久化, 這篇我們來說下怎麽通過spring boot 整合JPA來實現數據的持久化。 一、代碼實現  修改

多線程系列Guarded Suspension 模式

ted override 角色 str lis current bsp ride 安全性 一,什麽是Guarded Suspension模式如果執行現在的處理會造成問題,就讓執行處理的線程等待。這種模式通過讓線程等待來保證實例的安全性 二,實現一個簡單的線程間通信的例子 一

Java分析系列jstack生成的Thread Dump日誌執行緒狀態

前面文章中只分析了Thread Dump日誌檔案的結構,今天針對日誌檔案中 Java EE middleware, third party & custom application Threads 部分執行緒的狀態進行詳細的分析。 目錄 [隱藏] 1 Thread Dump日誌

Kubernetes系列使用yaml檔案建立deployment來部署一個應用程式到k8s叢集

目的 從零開始開發一個超小的應用,將它打包成一個image,利用yaml檔案部署到kube叢集中。 具體的思路是:在開發環境中,打算建立一個node.js應用程式,因為使用它可以讓我的程式足夠簡單,然後使用dockerfile去建立一個docker image,再將它push到doc

敏捷開發使用者故事系列優先順序排序

這是敏捷開發使用者故事系列的第四篇。(欄目目錄)優先順序排序聽起來是一個很簡單的工作,一個欄位無外乎“重要/一般……”,調整一下然後按排序,就出來了。但其實裡邊有不少名堂:誰應該負責排序工作?誰最終拍板?研發因素要不要考慮?需求依賴關係導致的順序如何處理?持續交付的考慮?商業

敏捷外包工程系列外包與敏捷開發專訪(IIOM獨家專訪)

本文是敏捷外包工程系列的第四篇。(之一,之二,之三,之四)本文是2012年05月初IIOM(國際外包管理學院)的專訪。傳統認為敏捷開發是面向產品研發的,在外包專案裡邊比較難用,因為需求由客戶牽制,而“擁抱變化”極有可能導致專案延期超支,等等。本文提及了敏捷開發對外包專案的幫助

MongoDB實戰系列mongodb副本集部署

簡述:副本集合(Replica Sets),是一個基於主/從複製機制的複製功能,但增加了自動故障轉移和恢復特性。一個叢集最多可以支援7個伺服器,並且任意節點都可以是主節點。所有的寫操作都被分發到主節點,而讀操作可以在任何節點上進行。 環境:CentOS 5.5 x64