环境
centos 7
ip地址
172.16.0.82 cluster1
172.16.0.83 cluster2
172.16.0.84 cluster3
安装
yum install -y rabbitmq-server
拷贝erlang.cookie,先启动一次rabbitmq才能生成erlang.cookie文件,集群环境内的erlang.cookie要相同
scp /var/lib/rabbitmq/.erlang.cookie root@172.16.0.83:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@172.16.0.84:/var/lib/rabbitmq/.erlang.cookie
启动rabbitmq,先加载插件
rabbitmq-plugins enable rabbitmq_management
systemctl start rabbitmq-server
将cluster2、cluster3作为内存节点加入cluster1节点集群中,在cluster2、cluster3执行如下命令:
rabbitmqctl stop_app //停掉rabbit应用
rabbitmqctl join_cluster --ram rabbit@cluster1 //加入到磁盘节点
rabbitmqctl start_app //启动rabbit应用
查看集群状态
rabbitmqctl cluster_status
上面已经完成RabbitMQ默认集群模式,但并不保证队列的高可用性,尽管交换机、绑定这些可以复制到集群里的任何一个节点,但是队列内容不会复制。虽然该模式解决一项目组节点压力,但队列节点宕机直接导致该队列无法应用,只能等待重启,所以要想在队列节点宕机或故障也能正常应用,就要复制队列内容到集群里的每个节点,必须要创建镜像队列。
镜像队列是基于普通的集群模式的,然后再添加一些策略,所以你还是得先配置普通集群,然后才能设置镜像队列,镜像队列请看参考文献