新建一个虚拟机,重新安装一个RabbitMQ,不会安装的可以看下面的连接:
在Linux中安装RabbitMQ_流殇꧂的博客-CSDN博客
1.修改/etc/hosts映射文件,两台虚拟机都需要修改
vim /etc/hosts
127.0.0.1 node1 localhost.localdomain localhost4 localhost4.localdomain4 ::1 node1 localhost.localdomain localhost6 localhost6.localdomain6 192.168.40.100 node1 192.168.40.101 node2
2.修改完成后重启linux服务器:
reboot
3.查看.erlang.cookie文件的位置:
find / -name .erlang.cookie
4.使用跨服务器拷贝.erlang.cookie文件到每台节点
scp /var/lib/rabbitmq/.erlang.cookie 192.168.40.101:/root
回车后输入另一台主机的密码即可
5.同步完成后需重启linux服务器:
reboot
6.关闭两台服务器的防火墙,启动RabbitMQ的服务:
关闭服务器的防火墙:
systemctl stop firewalld
启动RabbitMQ的服务:
rabbitmq-server -detached
7.加入集群节点(一个配置即可):
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app
8.在任意一台服务器运行该命令:
rabbitmqctl cluster_status
如下图所以,表示集群配置成功
9.在新的集群中重新手动添加用户(任意节点添加,所有节点共享)
rabbitmqctl add_user leq 123456
rabbitmqctl set_user_tags leq administrator
rabbitmqctl set_permissions -p "/" leq ".*" ".*" ".*"
10.我们通过192.168.40.100来创建一个虚拟机,在192.168.40.101中也可以查看到,两个RabbitMQ共享了数据
此时,集群搭建完毕,但是默认采用的模式普通模式,可靠性不高。因此,需将RabbitMQ改为镜像模式
镜像模式:
语法: set_policy {name} {pattern} {definition}
参数的含义:
name:表示策略名,名称自定义
pattern:队列的匹配模式,使用正则表达式进行匹配。"^"表示匹配所有的队列
definition:镜像定义,包括三个部分ha-mode、ha-params和ha-sync-mode
ha-mode:High Available高可用,简称HA。指明镜像队列的模式,有效值为all/exactly/nodes(all所有节点,exactly指定多个节点,nodes制定单个节点)
ha-params:表示ha-mode模式需要用到的参数
ha-sync-mode:进行队列中消息的同步方式,有效值为automatic和manual
1.通过命令的方式设置镜像模式策略,在任意一个节点上执行:
rabbitmqctl set_policy xall "^" '{"ha-mode":"all"}'
2.也可以通过RabbitMQ的可视化端口进行设置