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

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

到此這篇關于RabbitMQ集群部署解決方案的文章就介紹到這了,更多相關RabbitMQ 集群部署方案內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
在SpringBoot項目中連接SQL Server的幾種實現(xiàn)方式
本文介紹了在SpringBoot項目中連接SQLServer的三種常見方法:使用Microsoft官方的JDBC驅動、第三方的jTDS驅動以及Microsoft提供的官方SpringBootStarter,每種方法均提供了對應的依賴配置和YAML配置示例,幫助開發(fā)者輕松實現(xiàn)數(shù)據(jù)庫連接2025-09-09
springboot2中使用@JsonFormat注解不生效的解決
這篇文章主要介紹了springboot2中使用@JsonFormat注解不生效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02

