一、集群环境
系统 | 用户 | IP地址 | 主机名 |
---|---|---|---|
centos7.6 | root | 172.22.145.167 | sz1-22-145-centos167 |
centos7.6 | root | 172.22.145.168 | sz1-22-145-centos168 |
centos7.6 | root | 172.22.145.169 | sz1-22-145-centos169 |
本次以172.22.145.167为主,172.22.145.168和172.22.145.169为slave
测试环境集群可采用两个节点做集群,生产环境建议采用三机房架构,具体方案详见《RabbitMQ脑裂解决方案》
二、集群配置
1、配置主机名
三台虚拟机/etc/hosts都添加以下配置
172.22.145.167 sz1-22-145-centos167
172.22.145.168 sz1-22-145-centos168
172.22.145.169 sz1-22-145-centos169
2、同步.erlang.cookie
.erlang.cookie在当前用户家目录
三台虚拟机该文件相同即可,注意权限,一般从一台scp过去即可
[root@sz1-22-145-centos167 ~]#scp /root..erlang.cookie root@172.22.145.168:/root
[root@sz1-22-145-centos167 ~]#scp /root..erlang.cookie root@172.22.145.169:/root
注意,执行该步骤是RabbitMQ要先停止,如果已启动同步文件之后需要重启MQ
3、创建集群
启动集群(三台)
rabbitmq-server &
加入集群(两台slave上操作)
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@sz1-22-145-centos167 --ram
rabbitmqctl start_app
4、检查集群状态
rabbitmqctl cluster_status
三、其他
1、RabbitMQ集群建议有一个是disc节点,其他是ram节点;必须有一个disc节点
2、建议启用镜像队列模式,详见《常用命令》
3、集群连接方式,代码配置连接几个MQ节点地址(failover),或者添加前置负载均衡(Haproxy或LVS)