我想发现:有什么方法可以仅使用Java Spring代码来设置RabbitMQ镜像(HA队列)。 AFAIK有一个特殊的类RabbitAdmin用于处理此类配置问题,但无法确切地找到如何使用它来设置队列镜像的方法。是否可以以某种方式在Java Spring中配置HA队列?
先感谢
答案 0 :(得分: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
对其进行配置。