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 rabbitmq0110.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

创建队列测试