【发布时间】:2016-02-10 18:05:25
【问题描述】:
我有两个使用联合插件配置的代理[1]。两者都指向对方作为上游。
我的测试是:
- 在代理 A 上发布消息
- 在代理 B 上消费
结果是:
- 在代理 B 上消费工作
broker B 上的队列弹出消息 - broker A 上的队列还有消息
- 我看到的问题是:如果我总是在一个代理上发布,然后总是在另一个代理上消费 --> 那么发布代理上的队列将增长直到它满了并开始丢弃消息.
我想要的结果是:
- 当消费者在代理 B 上消费时,代理 A 和 B 上的两个队列都会弹出消息
当消费者在代理 B 上消费消息时,如何配置 RabbitMQ 以从所有队列中弹出消息?现在我正在尝试使用 RabbitMQ 联合插件。
[1] 两个代理相互指向上游,我将它们配置为same way as described in the "simple example" given by the documentation,除了有两个代理各自指向对方作为上游。 code for the publisher looks like this 和 code for the consumer looks like this。
【问题讨论】:
-
我想您使用的是队列联合对吧?并且您想使用来自一个代理的消息,并且另一个代理必须对齐,对吗?
-
@Gabriele re - “[are] you using queue federation?”:我正在使用来自联合“入门”部分的"simple example"。我认为这个“简单示例”使用了联合交易所。 (我的 RabbitMQ 也是 3.1.5 版,没有联合队列 (Federated Queues are available for versions 3.2 and onward)。
-
@Gabriele 你是说联合队列可能是解决问题的方法吗? (我问是因为我注意到您更有经验(我已经购买的 RabbitMQ Cookbook 的作者))。 |||从十分钟 reading about federated queues 开始,听起来他们会完全按照我的需要/想要做(即不同代理上的消费者将从联合队列中消费,这将导致消息在上游队列上消费)。你觉得我的解释对吗?
-
您是否考虑过使用集群功能而不是联邦?
-
我使用联合而不是集群,因为联合适用于 WANPHY 或不可靠的链接。
标签: python rabbitmq messagebroker rabbitmq-federation