1.三台虚拟机 CentOS7 虚拟机 (已经安装rabbitmq环境的)
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
IP分别为:10.118.62.36
10.118.62.71
10.118.62.85
2.修改主机名 vim/etc/hostname 分别为 h36、h71、h85
对用的到 vim/etc/hosts 修改建立三台虚拟机相互寻址
10.118.62.36 h36
10.118.62.71 h71
10.118.62.85 h85
3.我们把36 为主节点 然后进入 /var/lib/rabbitmq目录下,把/var/lib/rabbitmq/.erlang.cookie文件的远程Copy到71 、85
命令:scp /var/lib/rabbitmq/.erlang.cookie 10.118.62.71:var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie 10.118.62.85:var/lib/rabbitmq/
cop完成后先停止三个节点服务 rabblitmqclt stop
4.slave 加入集群操作 也就是 把71 ,85 节点加入的36主节点上 建立关系
(1)在10.118.62.71下停止服务 用该命令:rabbitmqctl stop_app
(2)在10.118.62.71:用该命令 rabbitmqctl join_cluster rabbit@h36 加入到主节点(rabbitmqctl join_cluster --ram rabbit@h36 ram是内存存储 默认情况下 disc 磁盘存储)
(3)在10.118.62.71:用该命令 rabbitmqctl start_app启动
同理85节点(slave)跟71一样添加方式
(5)添加完成后 启动每个节点 用命令启动
rabbitmq-server -detached
(6)查看集群状态
rabbitmqctl cluster_status
(7)访问任意一个管控台节点:http://10.118.62.36:15672 如图所示成功
(8)配置镜像队列
PS:设置镜像队列策略(在任意一个节点上执行)
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
PS:将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态一致,RabbitMQ高可用集群就已经搭建好了,我们可以重启服务,查看其队列是否在从节点同步。
HAProxy 下载地址 https://src.fedoraproject.org/repo/pkgs/haproxy/