商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > RabbitMQ集群部署方法

RabbitMQ集群部署方法

  发布于2026-07-16 阅读(0)

扫一扫,手机访问

搭建RabbitMQ集群,确实有不少细节需要注意。下面就直接进入正题,看看具体怎么操作。

RabbitMQ

环境方面,准备三台服务器,系统统一用CentOS7。IP地址分配如下:

  • rabbitmq1:192.168.152.71
  • rabbitmq2:192.168.152.72
  • rabbitmq3:192.168.152.73

一、安装 RabbitMQ

先把yum源配置好,这是基础,能省去不少麻烦。三台服务器上,分别安装Erlang和RabbitMQ Server。

先搞定Erlang,这是RabbitMQ的依赖环境:

yum install -y erlang

接着安装RabbitMQ本体:

yum install -y rabbitmq-server

二、更改配置文件

以下配置,三台服务器都得操作一遍。

修改RabbitMQ的配置文件:

vim /etc/rabbitmq/rabbitmq.config

找到大概第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

改完后,退出当前会话重新登录,让主机名生效。

接下来,启动三台服务器上的RabbitMQ服务,并设置为开机自启:

systemctl start rabbitmq-server
systemctl enable rabbitmq-server

这里有个关键步骤:统一三台服务器erlang.cookie。这个文件相当于Erlang节点的“共享密钥”,内容必须一致。把rabbitmq1上的文件复制到其他两台:

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

查看节点状态,确认服务都正常运行:

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

然后让它们加入rabbitmq1的集群:

rabbitmqctl join_cluster rabbit@rabbitmq1

加入成功后,再启动应用:

rabbitmqctl start_app

现在,在三台服务器上各自执行rabbitmqctl cluster_status,就能看到集群已经形成,节点列表里会包含全部三台服务器

# 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管理插件,可以更直观地看到集群状态,测试起来也方便。三台服务器都要执行:

rabbitmq-plugins enable rabbitmq_management
systemctl restart rabbitmq-server

通过IP地址加端口号访问,端口号是15672。例如,访问192.168.152.71:15672,默认用户名和密码都是guest

RabbitMQ集群部署方法

在其中一台服务器上添加一个新用户,然后刷新其他几台的管理页面,看看用户是否同步出现。如果数据一致,说明集群配置完全正确。

RabbitMQ集群部署方法

本文转载于:https://www.jb51.net/program/362612z59.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注