Linux環境搭建Rabbitmq集羣

前言

資料準備:
1、erlong安裝包
2、rabbitmq安裝包
3、兩臺Linux服務器(本篇文章用的CentOS7)
可以按照下面博客中步驟安裝:Linux下安裝Rabbitmq

環境準備

保證兩臺服務器安裝rabbitmq成功,並且能夠成功訪問到管理臺界面。
在兩臺Linux系統中修改hostname,分別爲A和B,作爲集羣註冊的主機名。
執行語句:

vi /etc/hosts

修改的文件內容如下:
A主機的主機名設置
在這裏插入圖片描述
B主機的主機名設置
在這裏插入圖片描述
設置成功後保存退出,重啓服務器:

reboot

注意:2臺Linux服務器需要完成同樣的操作。關閉防火牆確保2臺機器相互ping 同可以執行ping A 和ping B命令進行測試。
重啓後執行ping命令,保證兩臺機器能夠相互訪問:
在這裏插入圖片描述
在這裏插入圖片描述

配置Cookie文件

Erlang Cookie是保證不同節點可以互相通信的祕鑰,要保證集羣中的不同節點互相通信必須共享相同的Erlang Cookie。

由於我安裝rabbitmq是通過rpm進行安裝的,所以默認的Erlang Cookie文件路徑是:
/var/lib/rabbitmq/.erlang.cookie

cat /var/lib/rabbitmq/.erlang.cookie

在這裏插入圖片描述
要保證A服務器和B服務器的cookie文件值一致,有兩種解決方式,可以選擇使用vim進行編輯,也可以使用scp命令完成文件跨機器拷貝例如:

scp /var/lib/rabbitmq/.erlang.cookie 192.168.237.138:/var/lib/rabbitmq

注意:由於這個文件的權限是隻讀因此無論是使用vim還是scp來實現Cookie文件的同步都會失敗,因此必須要修改這個文件的權限:

 chmod 777 /var/lib/rabbitmq/.erlang.cookie

當Cookie文件同步完成以後再修改權限回只讀:

chmod 400 /var/lib/rabbitmq/.erlang.cookie

組件集羣

1、啓動兩個服務器的rabbitmq:

service rabbitmq-server start

訪問瀏覽器,保證都能夠出現rabbitmq界面:
在這裏插入圖片描述
2、查看集羣狀態確認節點

[root@B ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@B ...
[{nodes,[{disc,[rabbit@B]}]},
 {running_nodes,[rabbit@B]},
 {cluster_name,<<"rabbit@A">>},
 {partitions,[]},
 {alarms,[{rabbit@B,[]}]}]

此時還沒有進行其他服務器節點的加入,所以目前顯示的節點只有本服務器本身。

3、將某個RabbitMQ加入到某個服務器節點

rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@A
rabbitmqctl start_app

注意:
rabbitmqctl join_cluster rabbit@A 命令中的A爲某個機器的hostname,在hostname爲B的機器中執行這個命令。

4、再次查看集羣狀態確認節點

[root@B ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@B ...
[{nodes,[{disc,[rabbit@A,rabbit@B]}]},
 {running_nodes,[rabbit@A,rabbit@B]},
 {cluster_name,<<"rabbit@A">>},
 {partitions,[]},
 {alarms,[{rabbit@A,[]},{rabbit@B,[]}]}]

注意
當查看節點狀態時發現2臺機器的節點同時顯示機表示集羣搭建完成。

刷新頁面:
在這裏插入圖片描述
至此集羣搭建成功。

其他命令:
如果要將某個節點從集羣中移除,使其變回獨立節點,可以使用以下命令:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章