Spring AMQP如何始终确保与Rabbit MQ Cluster中的主队列节点的连接

时间:2017-11-01 16:25:53

标签: rabbitmq spring-rabbit spring-rabbitmq

我有一个3 Node Rabbit MQ设置。所有队列都在运行时创建。

如果我不镜像队列,那么将在假设Node1上创建一个特定的队列,并且不会出现在Node2和Node3中

现在,如果我使用Spring AMQP客户端,那么它将如何确保节点1上可用的queue1,它将始终连接到节点1以访问queue1

moment.invalid(/* Wed Sept 01 2017 04:33:01 GMT+0400 (+04) */)

另一种方法是使用ha模式,在任何节点上创建的每个队列都将复制到其余节点。无论客户端是否在任何节点上连接,这都将确保消耗HA和100​​%的消息保证。 但它不是一个理想的或好的解决方案

如果没有定义HA策略,我正在寻找解决方案。

1 个答案:

答案 0 :(得分:0)

请参阅the documentation about Queue Affinity and the LocalizedQueueConnectionFactory

虽然它是为HA队列设计的,但它适用于任何队列并连接到承载队列的节点(如果可用)。

它需要管理插件;它使用REST API来确定哪个节点承载队列。

如果队列是持久的并且托管节点已关闭,请将missingQueuesFatal设置为false,以便侦听器容器继续尝试。缺省队列默认被视为致命队列,容器将停止。