发布于2026-07-16 阅读(0)
扫一扫,手机访问
搭建RabbitMQ集群,确实有不少细节需要注意。下面就直接进入正题,看看具体怎么操作。
环境方面,准备三台服务器,系统统一用CentOS7。IP地址分配如下:
先把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。

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

售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8