上一篇介绍了如何安装RabbitMQ,下面介绍如何搭建RabbitMQ集群。
- 使用上篇创建的虚拟机复制新的虚拟rabbitmq3
设置新的文件名:centos_rabbitmq_3
选择“完全复制”
- 配置centos_rabbitmq_3的网络模式,使虚拟机之间能够通信。如下图所示,打开virtual box的个人偏好设置,在网络选项中,添加“仅主机(host-only)网络选项“。
接着设置centos_rabbitmq_3的网络选项,添加第2个网卡。如下图
- 启动rabbitmq3虚拟机,如下图所示,由于是根据虚拟机rabbitmq2的复制,因此主机名相同。
修改主机名,使用命令
vi /etc/hostname
重启虚拟机(命令:reboot),可以看到下图,主机名已改。
- 查看主机rabbitmq3的局域网ip,使用命令
ip address
如果发现局域网IP与其它其它虚拟机相同,则关闭虚拟机,修改rabbitmq3的网卡2下配置的mac地址,如下图:
- 执行rabbitmq状态,执行命令:rabbitmqctl status。如下图:
由于rabbitmq3是复制的,因此rabbitmq节点的配置还是rabbitmq2虚拟机上的配置。由于配置与机器主机名不一致,导致启动失败。因此使用如下方式修改节点名称,在/etc/rabbitmq文件夹下,修改rabbitmq-env.conf文件(如果没有,则创建此文件),如下图:
文件内容是:NODENAME=rabbit3@rabbitmq3
重启虚拟机,再次执行:rabbitmqctl status,检查消息节点是否正常,如下图:
-
修改虚拟机的hosts文件,保证虚拟机之间能够通过机器名访问,如下图:
- 检查防火墙配置,保证rabbitmq集群使用的端口都能正常访问。执行如下命令查看防火墙配置:view /etc/sysconfig/iptables
如果没有此文件,则可以使用如下命令安装防火墙:
yum install iptables
yum install iptables-server
如果配置文件有修改,则修改完成后执行如下命令:
systemctl restart iptables
8.检查rabbitmq3当前节点的集群状态,执行如下命令:
rabbitmqctl cluster_status
结果如下图:
9.停止rabbitmq3的消息节点,并重置配置。执行如下命令:
rabbitmqctl stop_app
rabbitmqctl reset
10.在rabbitmq3虚拟机上,执行如下命令把消息节点加入rabbitmq1的集群。
rabbitmqctl join_cluster rabbit1@rabbitmq1
结果如下图:
11.在rabbitmq3虚拟机上,执行如下命令检查集群状态:
rabbitmqctl cluster_status
结果如下图:
- 在主磁盘节点rabbitmq1虚拟机上,执行如下命令检查集群状态
rabbitmqctl cluster_status
结果如下图:
至此,一个简单的rabbitmq集群搭建完成。在产线环境环境下,需要做很多其它节点配置项。
[在平时使用启动虚拟机集群时经常出现rabbitmq节点无法启动,可以使用如下命令重启当前rabbitmq节点:
systemctl restart rabbitmq-server.service
]