RabbitMQ集群部署之仲裁队列

RabbitMQ 3.8版本开始,引入了新的仲裁队列,他具备与镜像队里类似的功能,但使用更加方便。

1.添加仲裁队列

在任意控制台添加一个队列,一定要选择队列类型为Quorum类型。

RabbitMQ集群部署之仲裁队列_第1张图片

在任意控制台查看队列:

RabbitMQ集群部署之仲裁队列_第2张图片

可以看到,仲裁队列的+ 2字样。代表这个队列有2个镜像节点。

因为仲裁队列默认的镜像数为5。如果你的集群有7个节点,那么镜像数肯定是5;而我们集群只有3个节点,因此镜像数量就是3。

2.测试

可以参考对镜像集群的测试,效果是一样的。

3.集群扩容

3.1.加入集群

1)启动一个新的MQ容器:

docker run -d --net mq-net \
-v ${PWD}/.erlang.cookie:/var/lib/rabbitmq/.erlang.cookie \
-e RABBITMQ_DEFAULT_USER=dcxuexi \
-e RABBITMQ_DEFAULT_PASS=123456 \
--name mq4 \
--hostname mq4 \
-p 25675:5672 \
-p 15675:15672 \
rabbitmq:3.11-management

RabbitMQ集群部署之仲裁队列_第3张图片

2)进入容器控制台:

docker exec -it mq4 bash

3)停止mq进程

rabbitmqctl stop_app

4)重置RabbitMQ中的数据:

rabbitmqctl reset

5)加入mq1

rabbitmqctl join_cluster rabbit@mq1

6)再次启动mq进程

rabbitmqctl start_app

RabbitMQ集群部署之仲裁队列_第4张图片

RabbitMQ集群部署之仲裁队列_第5张图片

3.2.增加仲裁队列副本

我们先查看下quorum.queue这个队列目前的副本情况,进入mq1容器:

docker exec -it mq1 bash

执行命令:

rabbitmq-queues quorum_status "quorum.queue"

结果:

RabbitMQ集群部署之仲裁队列_第6张图片

现在,我们让mq4也加入进来:

rabbitmq-queues add_member "quorum.queue" "rabbit@mq4"

结果:

在这里插入图片描述

再次查看:

rabbitmq-queues quorum_status "quorum.queue"

RabbitMQ集群部署之仲裁队列_第7张图片

查看控制台,发现quorum.queue的镜像数量也从原来的+2变成了+3

RabbitMQ集群部署之仲裁队列_第8张图片

你可能感兴趣的:(SpringCloud,RabbitMQ,java-rabbitmq,rabbitmq,分布式)