1. 程式人生 > >Zookeeper安裝以及配置說明(三)

Zookeeper安裝以及配置說明(三)

Zookeeper的安裝和配置非常的簡單,既可以配置成單機模式,也可以配置成叢集模式。如下圖所示:

這裡寫圖片描述

下面將分別進行介紹:

單機模式

下載最新穩定版本zookeeper的安裝包之後(看第一篇博文), 解壓到合適目錄. 進入zookeeper目錄下的conf子目錄, 修改zoo_sample.cfg示例檔案,改名zoo.cfg。不修改任何配置,執行bin目錄下的啟動命令即可(windows環境執行zkServer.cmd,linux環境執行zkServer.sh)。

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181

以window為例,啟動成功介面:
這裡寫圖片描述

我們可以看到啟動成功之後,會列印所有的環境資訊。如上圖所示。

引數說明:

  • tickTime: 以毫秒為單位,用來控制心跳和超時,預設情況超時的時間為兩倍的tickTime
  • dataDir: 資料目錄用於儲存快照檔案。 可以是任意目錄。
  • dataLogDir: log目錄, 同樣可以是任意目錄. 如果沒有設定該引數, 將使用和dataDir相同的設定。
  • clientPort: client連線zookeeper的監聽埠號。

其他配置項:

  • initLimit 設定允許所有follower與leader進行連線並同步的時間,如果在設定的時間段內,半數以上的follower未能完成同步,leader便會宣佈放棄領導地位,進行另一次的領導選舉。如果zk叢集環境數量確實很大,同步資料的時間會變長,因此這種情況下可以適當調大該引數。預設為10
  • syncLimit 設定允許一個follower與一個leader進行同步的時間,如果在設定的時間段內,follower未完成同步,它將會被叢集丟棄。所有關聯到這個follower的客戶端將連線到另外一個follower。
  • maxClientCnxns 限制連線到zookeeper的客戶端數量,並且限制併發連線數量,它通過ip區分不同的客戶端,預設值為60。
  • minSessionTimeout和maxSessionTimeout 最小會話超時時間和最大的會話超時時間,在預設情況下,最小的超時時間為2倍的tickTime時間,最大的會話超時時間為20倍的會話超時時間,系統啟動時會顯示相應的資訊。預設為-1。(高版本,此配置已經去掉了)

從3.4.0開始,zookeeper提供了自動清理snapshot和事務日誌的功能。

  • autopurge.snapRetainCount,autopurge.purgeInterval
    客戶端在與zookeeper互動過程中會產生非常多的日誌,而且zookeeper也會將記憶體中的資料作為snapshot儲存下來,這些資料是不會被自動刪除的,這樣磁碟中這樣的資料就會越來越多。不過可以通過這兩個引數來設定,讓zookeeper自動刪除資料。autopurge.purgeInterval就是設定多少小時清理一次。而autopurge.snapRetainCount是設定保留多少個snapshot,之前的則刪除。
    不過如果你的叢集是一個非常繁忙的叢集,然後又碰上這個刪除操作,可能會影響zookeeper叢集的效能,所以一般會讓這個過程在訪問低谷的時候進行,但是遺憾的是zookeeper並沒有設定在哪個時間點執行的設定,所以有的時候我們會禁用這個自動刪除的功能,而在伺服器上配置一個cron,然後在凌晨來幹這件事。

至此, zookeeper的單機模式已經配置好了.

叢集模式

叢集模式,又分為偽叢集模式和叢集模式,他們的配置基本一樣,只是單個機器和多個機器的區別。
由於叢集模式下, 各server部署在不同的機器上, 因此各server的conf/zoo.cfg檔案可以完全一樣。

在叢集模式中有一個重要配置就是myid。

配置-myid

在dataDir裡會放置一個myid檔案,裡面就一個數字,用來唯一標識這個服務。這個id是很重要的,一定要保證整個叢集中唯一。zookeeper會根據這個id來取出server.x上的配置。比如當前id為1,則對應著zoo.cfg裡的server.1的配置。而且在後面我們介紹leader選舉的時候,這個id的大小也是有意義的。

如果大家覺得還是不會安裝,可以看一下推薦其他安裝文章:

總結

Zookeeper的安裝非常的簡單,大家直接按照教程操作即可,下篇部落格我們會使用命令列操作一下zookeeper。