RabbitMQ通过Spring的RabbitAdmin调整HA队列

问题描述 投票:1回答:1

我想知道:有没有办法只使用Java Spring代码设置RabbitMQ镜像(HA队列)。 AFAIK有一个特殊类RabbitAdmin用于此类配置问题,但无法确切地知道如何使用它设置镜像队列。是否有可能以某种方式在Java Spring中配置HA队列?

提前致谢。

rabbitmq spring-amqp spring-rabbitmq spring-rabbit rabbitmqctl
1个回答
2
投票

从RabbitMQ 3.0开始,您无法再使用队列参数设置镜像:

Breaking things with RabbitMQ 3.0

您现在必须在代理上使用策略。

镜像队列策略

改变了什么?在RabbitMQ 3.0中,在声明队列时,队列镜像不再由x-ha-policy参数控制。您的应用程序可以继续声明此参数,但不会导致队列被镜像。相反,您可以声明一个或多个策略来控制镜像哪些队列,以及如何。

为什么会改变?任何使用镜像队列的人都会告诉你,要求应用程序知道哪些队列是镜像的,这很痛苦。新方法将配置放在代理所属的代理中,并且还支持随时更改镜像策略。

我该怎么办?您需要确保您的队列仍然是镜像的。有关完整文档,请参阅此处,但如果您只想确保所有队列(除了具有自动生成名称的队列)在所有节点上进行镜像,请运行:

rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}'

在早期版本中,您可以使用RabbitAdmin进行配置。

© www.soinside.com 2019 - 2024. All rights reserved.