【问题标题】:RabbitMQ tuning HA queues via Spring's RabbitAdminRabbitMQ 通过 Spring 的 RabbitAdmin 调整 HA 队列
【发布时间】:2018-08-22 05:43:59
【问题描述】:

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

提前感谢。

【问题讨论】:

    标签: rabbitmq spring-amqp spring-rabbit rabbitmqctl


    【解决方案1】:

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

    Breaking things with RabbitMQ 3.0 .

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

    镜像队列策略

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

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

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

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

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

    【讨论】:

    • 嗨,加里!非常感谢您的解释。所以 RabbitAdmin 现在对 HA 队列没用了。我可以对 Java 客户端 API 做同样的假设吗? (简而言之,这里描述为:rabbitmq.com/api-guide.html)我看了一眼它的 src,但找不到与 HA 队列相关的任何内容(
    • 否;这就是 RabbitAdmin 使用的 API。不再支持通过 AMQP 协议配置 HA;你必须创建一个策略。但是,您可以使用REST API 创建策略(如果您有权限)。 RabbitMQ 团队提供Java binding for interacting with the REST API
    猜你喜欢
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2019-12-23
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多