前期准备:
1、本文使用的是CentOS7系统
2、配置好RabbitMQ集群,配置可参考:
https://blog.csdn.net/weixin_47026543/article/details/113348711
配置镜像队列:
配置镜像队列有两种方式,一是在代码中进行配置,二是使用管理命令进行配置。
一、在代码中进行配置:
1、全部节点进行镜像队列:
2、指定节点进行镜像队列:
二、在控制台中使用管理命令进行队列镜像:
1、使用命令进行镜像:
rabbitmqctl set_policy [-p Vhost] Name Pattern Definition [Priority]
命令参数详解:
参数 | |
---|---|
-p Vhost | 可选参数,针对指定vhost下的queue进行设置 |
Name | policy的名称 |
Pattern | queue的匹配模式(正则表达式) |
Definition | 镜像定义,包括三个部分ha-mode, ha-params, ha-sync-mode |
priority | 可选参数,policy的优先级 |
Definition 属性配置详解:
参数 | |
---|---|
ha-mode | 指明镜像队列的模式,有效值为 all/exactly/nodes |
– | all:表示在集群中所有的节点上进行镜像 |
– | exactly:表示在指定个数的节点上进行镜像,节点的个数由ha-params指定 |
– | nodes:表示在指定的节点上进行镜像,节点名称通过ha-params指定 |
ha-params | ha-mode模式需要用到的参数 |
ha-sync-mode | 进行队列中消息的同步方式,有效值为automatic和manual |
示例:
对队列名称以“queue_”开头的所有队列进行镜像,并在集群的两个节点上完成进行,policy的设置命令为:
rabbitmqctl set_policy ha-queue-two '^queue_' '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'
2、直接在控制台进行命令输入:
至此,RabbitMQ集群的队列镜像就完成了!