【发布时间】:2018-08-22 05:43:59
【问题描述】:
我想知道:是否有任何方法可以仅使用 Java Spring 代码设置 RabbitMQ 镜像(HA 队列)。 AFAIK 有一个针对此类配置问题的特殊类 RabbitAdmin,但无法确切了解如何使用它设置队列镜像。是否可以在 Java Spring 中以某种方式配置 HA 队列?
提前感谢。
【问题讨论】:
标签: rabbitmq spring-amqp spring-rabbit rabbitmqctl
我想知道:是否有任何方法可以仅使用 Java Spring 代码设置 RabbitMQ 镜像(HA 队列)。 AFAIK 有一个针对此类配置问题的特殊类 RabbitAdmin,但无法确切了解如何使用它设置队列镜像。是否可以在 Java Spring 中以某种方式配置 HA 队列?
提前感谢。
【问题讨论】:
标签: rabbitmq spring-amqp spring-rabbit rabbitmqctl
从 RabbitMQ 3.0 开始,您不能再使用队列参数设置镜像:
Breaking things with RabbitMQ 3.0 .
您现在必须在代理上使用策略。
镜像队列策略
发生了什么变化?在 RabbitMQ 3.0 中,声明队列时,队列镜像不再由 x-ha-policy 参数控制。您的应用程序可以继续声明此参数,但不会导致队列被镜像。相反,您可以声明一个或多个策略来控制镜像哪些队列以及如何镜像。
为什么会改变?任何使用过镜像队列的人都会告诉您,要求应用程序知道哪些队列被镜像是一件很痛苦的事情。新方法将配置放在它所属的代理中,并且还支持随时更改镜像策略。
我应该怎么做?您需要确保您的队列仍然是镜像的。有关完整文档,请参见此处,但如果您只想确保所有队列(具有自动生成名称的队列除外)在所有节点上镜像,请运行:
rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}'
在早期版本中,您可以使用RabbitAdmin 对其进行配置。
【讨论】: