RabbitMQ?集群部署解決方案
- 環(huán)境準(zhǔn)備:三臺(tái)服務(wù)器,系統(tǒng)是 CentOS7
- IP地址分別是:
- rabbitmq1:192.168.152.71
- rabbitmq2:192.168.152.72
- rabbitmq3:192.168.152.73
一、安裝 RabbitMQ
記得配置yum源,避免不必要的錯(cuò)誤
在三臺(tái)服務(wù)器上分別安裝 erlang 和 rabbitmq-server
安裝 RabbitMQ 運(yùn)行環(huán)境
yum install -y erlang
安裝軟件 RabbitMQ
yum install -y rabbitmq-server
二、更改配置文件
一下配置在三臺(tái)服務(wù)器上都要修改
更改 RabbitMQ 配置文件
vim /etc/rabbitmq/rabbitmq.config
找到 %%{loopback_users, []}, 改為下面內(nèi)容,大概在 53 行
{loopback_users, []}更改 hosts 配置主機(jī)名解析
192.168.152.71 rabbitmq1 192.168.152.72 rabbitmq2 192.168.152.73 rabbitmq3
可以 ping 一下看是否配置成功
三、配置集群
改主機(jī)名,對(duì)照 hosts 配置的主機(jī)名解析,把對(duì)用服務(wù)器的主機(jī)名改為相應(yīng)的解析
如:192.168.152.71
hostnamectl set-hostname rabbitmq1
192.168.152.72
hostnamectl set-hostname rabbitmq2
192.168.152.73
hostnamectl set-hostname rabbitmq3
然后全部都 exit 重新登錄
啟動(dòng)三臺(tái)服務(wù)器的 RabbitMQ 服務(wù)
systemctl start rabbitmq-server systemctl enable rabbitmq-server
統(tǒng)一三臺(tái)服務(wù)器的 erlang.cookie,把 rabbitmq1 的 erlang.cookie 傳輸?shù)狡渌鼉膳_(tái)
scp /var/lib/rabbitmq/.erlang.cookie rabbitmq2:/var/lib/rabbitmq/.erlang.cookie scp /var/lib/rabbitmq/.erlang.cookie rabbitmq3:/var/lib/rabbitmq/.erlang.cookie
運(yùn)行 cat /var/lib/rabbitmq/.erlang.cookie,查看三臺(tái)服務(wù)器的值是否一致,一致后再重啟 rabbitmq2 和 rabbitmq3 的 RabbitMQ 服務(wù)
systemctl restart rabbitmq-server
查看 RabbitMQ 的節(jié)點(diǎn)狀態(tài)
rabbitmqctl cluster_status
結(jié)果如下即為正確
# rabbitmq1 的結(jié)果:
Cluster status of node rabbit@rabbitmq1 ...
[{nodes,[{disc,[rabbit@rabbitmq1]}]},
{running_nodes,[rabbit@rabbitmq1]},
{cluster_name,<<"rabbit@rabbitmq1">>},
{partitions,[]}]
...done.
# rabbitmq2 的結(jié)果:
Cluster status of node rabbit@rabbitmq2 ...
[{nodes,[{disc,[rabbit@rabbitmq2]}]},
{running_nodes,[rabbit@rabbitmq2]},
{cluster_name,<<"rabbit@rabbitmq2">>},
{partitions,[]}]
...done.
# rabbitmq3 的結(jié)果:
Cluster status of node rabbit@rabbitmq3 ...
[{nodes,[{disc,[rabbit@rabbitmq3]}]},
{running_nodes,[rabbit@rabbitmq3]},
{cluster_name,<<"rabbit@rabbitmq3">>},
{partitions,[]}]
...done.停止 rabbitmq2 和 rabbitmq3 主機(jī)的 RabbitMQ 應(yīng)用
rabbitmqctl stop_app
讓 rabbitmq2 和 rabbitmq3 加入 rabbitmq1 的集群
rabbitmqctl join_cluster rabbit@rabbitmq1
啟動(dòng) rabbitmq2 和 rabbitmq3 主機(jī)的 RabbitMQ 應(yīng)用,并再次查看 RabbitMQ 的節(jié)點(diǎn)狀態(tài)
rabbitmqctl start_app
再三臺(tái)服務(wù)器上執(zhí)行 rabbitmqctl cluster_status 命令,結(jié)果就會(huì)變?yōu)橄旅孢@樣
# rabbitmq1 的結(jié)果:
Cluster status of node rabbit@rabbitmq1 ...
[{nodes,[{disc,[rabbit@rabbitmq1,rabbit@rabbitmq2,rabbit@rabbitmq3]}]},
{running_nodes,[rabbit@rabbitmq2,rabbit@rabbitmq3,rabbit@rabbitmq1]},
{cluster_name,<<"rabbit@rabbitmq1">>},
{partitions,[]}]
...done.
# rabbitmq2 的結(jié)果:
Cluster status of node rabbit@rabbitmq2 ...
[{nodes,[{disc,[rabbit@rabbitmq1,rabbit@rabbitmq2,rabbit@rabbitmq3]}]},
{running_nodes,[rabbit@rabbitmq1,rabbit@rabbitmq3,rabbit@rabbitmq2]},
{cluster_name,<<"rabbit@rabbitmq1">>},
{partitions,[]}]
...done.
# rabbitmq3 的結(jié)果:
Cluster status of node rabbit@rabbitmq3 ...
[{nodes,[{disc,[rabbit@rabbitmq1,rabbit@rabbitmq2,rabbit@rabbitmq3]}]},
{running_nodes,[rabbit@rabbitmq2,rabbit@rabbitmq1,rabbit@rabbitmq3]},
{cluster_name,<<"rabbit@rabbitmq1">>},
{partitions,[]}]
...done.此時(shí)集群配置成功
四、測(cè)試
可以可以啟用 RabbitMQ 可視化web管理插件,更直觀的看到集群狀態(tài),也方便測(cè)試
三臺(tái)服務(wù)器都要開(kāi)啟
rabbitmq-plugins enable rabbitmq_management systemctl restart rabbitmq-server
通過(guò)IP地址加端口號(hào)訪問(wèn),端口號(hào)為 15672
如:192.168.152.71:15672,默認(rèn)的用戶名:guest,密碼:guest

可以再其中一臺(tái)添加用戶,看其它幾臺(tái)是否有變化,有則配置成功

到此這篇關(guān)于RabbitMQ集群部署解決方案的文章就介紹到這了,更多相關(guān)RabbitMQ 集群部署方案內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java微信公眾平臺(tái)開(kāi)發(fā)(14) 微信web開(kāi)發(fā)者工具使用
這篇文章主要為大家詳細(xì)介紹了Java微信公眾平臺(tái)開(kāi)發(fā)第十四步,微信web開(kāi)發(fā)者工具的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
SpringBoot集成Watchdog的完整步驟教學(xué)
這篇文章主要為大家詳細(xì)介紹了SpringBoot中集成Watchdog的完整步驟教學(xué),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-09-09
深入理解 Java 中的 Switch 語(yǔ)句示例詳解
在Java編程中,switch語(yǔ)句通過(guò)表達(dá)式值來(lái)執(zhí)行不同代碼塊,本文介紹switch語(yǔ)法、案例、注意事項(xiàng),以及與if語(yǔ)句的對(duì)比,包括基本語(yǔ)法、關(guān)鍵字、表達(dá)式、case常量、break和default的使用,以及如何根據(jù)輸入的字符輸出星期、大小寫(xiě)轉(zhuǎn)換、成績(jī)判斷和季節(jié)判斷等實(shí)際應(yīng)用場(chǎng)景2024-10-10
ArrayList及HashMap的擴(kuò)容規(guī)則講解
今天小編就為大家分享一篇關(guān)于ArrayList及HashMap的擴(kuò)容規(guī)則講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02
使用Java獲取Json中的數(shù)據(jù)簡(jiǎn)單示例
開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)遇到j(luò)son數(shù)據(jù)的處理,而單獨(dú)對(duì)json數(shù)據(jù)進(jìn)行增刪改并不方便,下面這篇文章主要給大家介紹了關(guān)于使用Java獲取Json中的數(shù)據(jù),文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
Struts2實(shí)現(xiàn)生成動(dòng)態(tài)驗(yàn)證碼并驗(yàn)證實(shí)例代碼
這篇文章主要介紹了Struts2實(shí)現(xiàn)生成動(dòng)態(tài)驗(yàn)證碼并驗(yàn)證實(shí)例代碼的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
MyBatisPlus數(shù)據(jù)權(quán)限控制實(shí)現(xiàn)的三種方式
數(shù)據(jù)權(quán)限是保障數(shù)據(jù)安全的重要手段,本文主要介紹了MyBatisPlus數(shù)據(jù)權(quán)限控制實(shí)現(xiàn)的三種方式,具有一定的參考價(jià)值,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05

