1. 程式人生 > >ZooKeeper叢集搭建(一):準備工作以及搭建叢集的具體操作

ZooKeeper叢集搭建(一):準備工作以及搭建叢集的具體操作

為什麼要做ZooKeeper叢集?

  1. ZooKeeper在Dubbo框架中起著發現服務,服務登出/註冊(動態伸縮)的功能,假如僅有的一臺Zookeeper宕機了,將會造成整個應用的服務呼叫失敗,服務停擺期間所造成的損失不可想象

  2. 同時Zookeeper也是很多中介軟體,比如訊息中介軟體ActiveMQ叢集所需要依賴的

    關鍵是ActiveMQ叢集的主從選舉是基於Zookeeper實現的,如果關鍵時刻唯一的Zookeeper宕機了,那麼ActiveMQ的主從切換也將無法實現

準備工作

假如你還沒有安裝ZooKeeper,可以參考下面的文章,只需要看前面20行左右即可

ZooKeeper: 在CentOS7中配置Zookeeper並搭建測試環境:https://blog.csdn.net/fenghuoliuxing990124/article/details/84979590

為了排除干擾,進入安裝好的zookeeper的bin目錄下執行:

./zkServer.sh stop

具體操作

  1. 進入/usr/local 建立zookeeper-cluster資料夾

    cd /usr/local
    mkdir zookeeper-cluster

  2. 複製安裝好的zookeeper到zookeeper-cluster下

    cp -r zookeeper ./zookeeper-cluster/

    mv ./zookeeper-cluster/zookeeper ./zookeeper-cluster/zk1

  3. 進入zk1的conf,修改zoo.cfg檔案
    在這裡插入圖片描述

  4. 為zoo.cfg新增以下配置

一般來說應該是這樣的:

server.1=192.168.230.121:2888:3888
server.2=192.168.230.122:2888:3888
server.3=192.168.230.123:2888:3888

這裡server後接的數字代表ID號

IP地址後面的2888埠表示的是:叢集中leader與follower通訊的介面

3888埠表示的是:投票選舉時用的介面

但是我們都是配置在同一臺主機上的,所以,上面的地址變為:

server.1=192.168.230.140:2888:3888
server.2=192.168.230.140:2887:3887
server.3=192.168.230.140:2886:3886

最終配置為:

在這裡插入圖片描述

也許你已經看見了紅線表示的部分,因為我已經啟動過叢集一次了

實際上zookeeper會將你之前填寫的內容動態連結到一個檔案中:

該檔案的內容如下:

在這裡插入圖片描述

接下來你注意到了下面的部分,是的,由於我們目前所有的zookeeper都在同一臺伺服器上,所以下面的客戶端介面,admin.server介面都得改動

在這裡插入圖片描述

5.建立data與log檔案

在上面你看到了data與log檔案的檔案路徑配置,注意這個是一定要配置的,並且一定要是各自獨立的,這個配置以後才能保證,叢集中的Master宕機後,新Master的資料不受影響

cd /usr/local/zookeeper-cluster/zk1
mkdir data
mkdir log

6.進入data目錄,新建myid檔案

echo 1 >> myid

這個"1"對應的是zoo.cfg中server.1,後面的zk2,zk3節點同理

接下來就是製作zk2,zk3節點

cd /usr/local/zookeeper-cluster

cp -r zk1 zk2

將下面的clientPort = 2181 --> 2182

admin.serverPort=9999 --> 9998

修改data,log對應的資料夾,最後在data中新增對應的zk2節點

在這裡插入圖片描述

zk3節點同理,不再贅述

防火牆配置

由於要開放埠較多,直接關閉即可

如需開放埠,可參考:

CentOS7:配置防火牆:https://blog.csdn.net/fenghuoliuxing990124/article/details/84931331

如果以上都沒有問題,下一步即是叢集測試了