ZooKeeper叢集搭建(一):準備工作以及搭建叢集的具體操作
為什麼要做ZooKeeper叢集?
-
ZooKeeper在Dubbo框架中起著發現服務,服務登出/註冊(動態伸縮)的功能,假如僅有的一臺Zookeeper宕機了,將會造成整個應用的服務呼叫失敗,服務停擺期間所造成的損失不可想象
-
同時Zookeeper也是很多中介軟體,比如訊息中介軟體ActiveMQ叢集所需要依賴的
關鍵是ActiveMQ叢集的主從選舉是基於Zookeeper實現的,如果關鍵時刻唯一的Zookeeper宕機了,那麼ActiveMQ的主從切換也將無法實現
準備工作
假如你還沒有安裝ZooKeeper,可以參考下面的文章,只需要看前面20行左右即可
ZooKeeper: 在CentOS7中配置Zookeeper並搭建測試環境:https://blog.csdn.net/fenghuoliuxing990124/article/details/84979590
為了排除干擾,進入安裝好的zookeeper的bin目錄下執行:
./zkServer.sh stop
具體操作
-
進入/usr/local 建立zookeeper-cluster資料夾
cd /usr/local
mkdir zookeeper-cluster -
複製安裝好的zookeeper到zookeeper-cluster下
cp -r zookeeper ./zookeeper-cluster/
mv ./zookeeper-cluster/zookeeper ./zookeeper-cluster/zk1
-
進入zk1的conf,修改zoo.cfg檔案
-
為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
如果以上都沒有問題,下一步即是叢集測試了