前期准备
1、在VMware上创建两个CentOS7虚拟机
2、在CentOS中分别安装好RabbitMQ,并能成功运行,访问到管理界面
3、在CentOS7中安装RabbitMQ步骤参考:
https://blog.csdn.net/weixin_47026543/article/details/113349896
搭建集群
1、修改两台虚拟机的机器名称:
vi /etc/hostname
两台主机分别取名为:node1,node2
2、修改两台虚拟机的 hosts 文件:
在文件中分别添加两台虚拟机的 ip 地址 + 刚刚修改的 hostname 名称,集群中添加几台虚拟机,hosts文件中就添加一个
vi /etc/hosts
文件修改完成以后,按esc退出编辑状态,输入 :wq保存退出:
:wq
修改完成以后,重启虚拟机,使修改生效:
reboot
3、Erlang Cookie 文件,不同服务器上的文件内容应该一致
1)查看命令:
cat /var/lib/rabbitmq/.erlang.cookie
2)使用命令将node1虚拟机上的文件复制到node2虚拟机上:
scp /var/lib/rabbitmq/.erlang.cookie 192.168.108.134:/var/lib/rabbitmq
3)在node2节点上进行查看,发现已修改:
4、node1和node2均要开启相关端口:
firewall-cmd --permanent --add-port=15672/tcp
firewall-cmd --permanent --add-port=5672/tcp
firewall-cmd --permanent --add-port=25672/tcp
firewall-cmd --permanent --add-port=4369/tcp
端口开启后进行重启:
firewall-cmd --reload
使用名称检查端口是否开启,返回yes表示成功:
firewall-cmd --query-port=4369/tcp
5、检查下两个节点是否开启RabbitMQ:
service rabbitmq-server status
6、停掉node2节点的RabbitMQ,(不要停掉Erlang):
rabbitmqctl stop_app
7、清除虚拟机之前关联的RabbitMQ集群关系,新建的虚拟机可以不执行,不知道的话最好执行以下,以免出现错误:
rabbitmqctl reset
8、加入node1集群:
注意:
要创建的集群中只有两个节点的时候,最好都是磁盘节点,RabbitMQ集群,最好保证最少有两个磁盘节点,一下命令2选1:
1)加入磁盘节点命令:
rabbitmqctl join_cluster rabbit@node1
2)加入内存节点命令:
rabbitmqctl join_cluster rabbit@node1 --ram
9、加入集群以后,启动node2节点的RabbitMQ:
rabbitmqctl start_app
10、检查集群状态(node1和node2均可):
rabbitmqctl cluster_status
11、想要移除集群中的node2:
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
移除node2节点后,查看node1节点状态发现集群中只剩下node1节点:
rabbitmqctl cluster_status
12、加入node2为内存节点:
rabbitmqctl join_cluster rabbit@node1 --ram
至此,创建RabbitMQ集群成功!
注意:
如果在外部服务器进行web访问不成功,则要在Linux中检查RabbitMQ的用户信息,是否只有默认的guest用户存在,如果没有其他用户,则需另行创建,并进行administrator权限设置,外部服务器不能访问默认的guest用户。
新增用户步骤参考:
https://blog.csdn.net/weixin_47026543/article/details/113349896
注意:
所有的节点应该都在一个局域网中