RabbitMQ集群(镜像队列)

按下面步骤创建3个RabbitMQ

docker run -d --hostname rabbit01 --name mq01 -p 5671:5672 -p 15671:15672 -e RABBITMQ_ERLANG_COOKIE="rabbitmq_cookie" -e RABBITMQ_DEFAULT_USER=账号 -e RABBITMQ_DEFAULT_PASS=密码 rabbitmq

docker run -d --hostname rabbit02 --name mq02 -p 5672:5672 -p 15672:15672 --link mq01:mylink01 -e RABBITMQ_ERLANG_COOKIE="rabbitmq_cookie" -e RABBITMQ_DEFAULT_USER=账号 -e RABBITMQ_DEFAULT_PASS=密码 rabbitmq

docker run -d --hostname rabbit03 --name mq03 -p 5673:5672 -p 15673:15672 --link mq01:mylink02 --link mq02:mylink03 -e RABBITMQ_ERLANG_COOKIE="rabbitmq_cookie" -e RABBITMQ_DEFAULT_USER=账号 -e RABBITMQ_DEFAULT_PASS=密码 rabbitmq

配置集群

mq01
docker exec -it mq01 /bin/bash
cd /etc/rabbitmq/conf.d/
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
exit
docker restart mq01
mq02
docker exec -it mq02 /bin/bash
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbit01
rabbitmqctl start_app
rabbitmq-plugins enable rabbitmq_management     #开户控制面板
cd /etc/rabbitmq/conf.d/
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
exit
docker restart mq02
mq03
docker exec -it mq03 /bin/bash
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbit01
rabbitmqctl start_app
rabbitmq-plugins enable rabbitmq_management     #开户控制面板
cd /etc/rabbitmq/conf.d/
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
exit
docker restart mq03

配置镜像队列

image.png

添加一个策略
image.png

部分参数说明:

Name:policy 的名称
Pattern:queue 的匹配模式(正则表达式)
Definition:镜像定义,主要由三个参数:ha-mode,ha-params,ha-sync-mode。

  • ha-mode:指明镜像队列的模式,有效值为 all、exactly、nodes。其中 all 表示在集群中所有的节点上进行镜像(默认即此);exactly 表示在指定个数的节点上进行镜像,节点的个数由 ha-params 指定;nodes 表示在指定的节点上进行镜像,节点名称通过 ha-params 指定。
  • ha-params:ha-mode 模式需要用到的参数
  • ha-sync-mode:进行队列中消息的同步方式,有效值为 automatic 和 manual。
    priority 为可选参数,表示 policy 的优先级

参考文章:http://www.javaboy.org/2021/1209/rabbitmq_cluster.html

你可能感兴趣的:(RabbitMQ集群(镜像队列))