1.准备三台centos7主机,并关闭防火墙与selinux
2.安装rabbitmq环境必备的Erlang(以下所有操作三台主机均需要执行)
执行以下命令下载配置erlang yum源
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash
使用yum命令安装erlang
yum -y install erlang
3.安装rabbitmq服务
执行以下命令下载配置rabbitmq yum源
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash
使用yum命令安装rabbitmq
yum -y install rabbitmq-server
4.更改主机名称(其余两台主机分别改为rabbitmq02、rabbitmq03)
vi /etc/hostname
rabbitmq01.localdomain #将原来前面的localhost改为rabbitmq01
5.配置主机hosts文件
vi /etc/hosts
10.1.60.112 rabbitmq03 #在文件末尾加入此三项配置,ip需要根据主机自身的自行更改
10.1.60.114 rabbitmq01
10.1.60.115 rabbitmq02
重启network服务使配置生效
systemctl restart network
查看主机名称是否变更
检测三台主机通过主机名是否能互相ping通
6. 启动rabbitmq服务(仅在rabbitmq01上执行)
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
7.拷贝cookie文件到另外两个节点(仅在rabbitmq01上执行,必须保持所有节点的cookie一致)
scp /var/lib/rabbitmq/.erlang.cookie root@rabbitmq02:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@rabbitmq03:/var/lib/rabbitmq/.erlang.cookie
8.启动rabbitmq02、rabbitmq03主机的rabbitmq服务
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
9.启用rabbitmq的web服务
rabbitmq-plugins enable rabbitmq_management
10.查看rabbitmq01的集群节点名称(仅在rabbitmq01上执行)
rabbitmqctl status
11.加入rabbitmq01集群(在rabbitmq02、rabbitmq03节点上执行)
rabbitmqctl stop_app
rabbitmqctl reset #清空数据,不执行也可以
rabbitmqctl join_cluster rabbit@rabbitmq01
rabbitmqctl start_app
12.查看集群状态(在任意一个节点上查看即可)
rabbitmqctl cluster_status
13.配置rabbitmq用户(在一个节点上配置即可,集群中的其余节点会自动同步)
rabbitmqctl add_user admin 'admin'
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'
14.访问web页面(访问任意一个节点的web页面即可,所有节点显示的都是一样的)
至此普通集群已搭建完成,下面就是配置镜像集群
15.创建镜像规则
先了解一下镜像规则的三兄弟,HA mode、HA params、HA sync mode
HA mode:all、exactly、node 三个配置项,all表示镜像到群集中的所有节点,exactly表示镜像到一定数量的节点,node表示镜像到明确的节点,exactly和node需要和HA params项一起使用
HA params:当HA mode配置为exactly或者node项时,需要在此填入后续需要指定的参数
HA sync mode:manual、automatic两个配置项,manual表示手动同步数据,automatic表示自动同步数据,一般不配置此项,默认就是自动同步数据,除非特殊情况需要配置手动同步
通过web端创建
按回车键就会创建规则了,此图上有个错误,ha-params项不应该是string,应该是number,我改错了,选string项创建会报错
使用命令方式创建镜像规则(在任意节点执行即可)
rabbitmqctl set_policy ha-d "^D" '{"ha-mode":"exactly","ha-params":2}' --priority=2 --apply-to=queues
创建队列测试