限於伺服器個數有限本次測試了兩種情況
1、單節點方式:部署在一台伺服器上
2、單ip多節點(偽集群):部署在同一ip,但是有多個節點,各有自己的埠
3、多ip多節點:部署在不同ip,各有自己的埠(未測試)
一、單節點方式:
1、解壓zk包,進入zookeeper-3.4.6\conf目錄,修改zoo_sample.cfg檔案為zoo.cfg.如果沒有特殊需求,不需要修改配置檔案,直接使用預設配置檔案即可.
各個引數的意義:
ticktime:這個時間是作為 zookeeper 伺服器之間或客戶端與伺服器之間維持心跳的時間間隔,也就是每個 ticktime 時間就會傳送乙個心跳。 datadir:顧名思義就是 zookeeper 儲存資料的目錄,預設情況下,zookeeper 將寫資料的日誌檔案也儲存在這個目錄裡。 clientport:這個埠就是客戶端連線 zookeeper 伺服器的埠,zookeeper 會監聽這個埠,接受客戶端的訪問請求。 initlimit:集群中的follower伺服器(f)與leader伺服器(l)之間初始連線時能容忍的最多心跳數(ticktime的數量) synclimit:集群中的follower伺服器與leader伺服器之間請求和應答之間能容忍的最多心跳數(ticktime的數量)。
啟動zookeeper,windows下執行zookeeper-3.4.6\bin >zkserver.cmd;linux下ookeeper-3.4.6\bin >zkserver.sh start啟動
檢視是否成功執行:bin/zkserver.cmd status
二、單ip多節點
(1)修改配置檔案:拷貝多份zookeeper程式,例如設定三個server,分別建立目錄server1、server2、server3,每個目錄下存放乙份zookeeper程式,並修改各自配置檔案如下:
server2配置:
server3配置:
注意:同一ip上搭建多個節點的集群時,必須要注意埠問題,埠必須不一致才行;
建立多個節點集群時,在datadir目錄下必須建立myid檔案,myid檔案用於zookeeper驗證server序號等,myid檔案只有一行,並且為當前server的序號,例如server.1的myid就是1,server2的myid就是2等。
server.a=b:c:d;其中 a 是乙個數字,表示這個是第幾號伺服器;b 是這個伺服器的 ip 位址;c 表示的是這個伺服器與集群中的 leader 伺服器交換資訊的埠;d 表示的是萬一集群中的 leader 伺服器掛了,需要乙個埠來重新進行選舉,選出乙個新的 leader,而這個埠就是用來執行選舉時伺服器相互通訊的埠。如果是偽集群的配置方式,由於 b 都是一樣,所以不同的 zookeeper 例項通訊埠號不能一樣,所以要給它們分配不同的埠號。
啟動過程:啟動順序為server1、server2、server3。在啟動server1,server2時zk會報錯,當所有節點全部啟動時錯誤會消失。三、
多ip多節點:
將zookeeper拷貝到每個節點乙份。
多ip多節點與單ip多節點搭建過程基本一致,上述過程不再重複描述,僅重點說乙個地方:server的ip位址、埠為真實即可。
注意:zk的部署個數最好為基數,zk集群的機制是只要超過半數的節點ok,集群就能正常提供服務。只有zk節點掛得太多,只剩一半或不到一半節點能工作,集群才失效。
zookeeper集群搭建
接觸zookeeper集群已有很長很長一段時間了,zookeeper在專案中的使用相當的頻繁,如dubb服務 amq集群 大資料領域hadoop等。zookeeper的集群建立非常簡單,一直想寫一篇文章來對集群使用的介紹,但一直沒能抽出空,今天正好閒來無事,就重新實踐一遍來整理記錄,下文是基本的集群...
zookeeper集群搭建
zookeeper環境搭建需要保證奇數臺機器,以保證演算法能選舉出乙個leader。一 環境準備 datadir dir ticktime 2000 initlimit 5 synclimit 2 clientport 2181 server.0 192.168.1.100 2888 3888 se...
zookeeper集群搭建
1.準備工作 tomcat zookeeper 最少三個結點搭乙個集群,所以複製三份 2.搭建並配置三個zookeeper例項 cd usr local solr cloud zookeeper01 進zookeeper01目錄,mkdir data 該目錄下建立data資料夾,放置zookeepe...