2

我正在尝试在不同类型的消息之间实现负载平衡。在进入队列之前,我不会提前知道进来的消息可能是什么。我知道我可以尝试对消息重新排序,但我在想如果有办法让各个消费者在队列之间或主题之间循环,这将解决我的问题。

我要解决的主要问题是我有许多服务将消息发送到一个队列,而许多消费者从一个队列中获取信息。我不希望一种服务垄断整个工作集群。同样,我事先不知道将要进入队列的消息将是什么。

尝试清楚地重复我的问题:有没有办法告诉消费者在现有队列或主题之间循环?

先感谢您。

4

2 回答 2

2

我在另一篇文章中找到了我的问题的答案,只需要知道看看那里。我通过不创建 AMQ 使用者而是创建具有复合目的地的 JMS 侦听器解决了我的问题,如本文中所指定:jms-listener-dynamically-choose-destinations。事实证明,JMS 侦听器会自动轮询您分配给它的所有队列。

于 2014-08-29T16:42:05.707 回答
1

队列上的消费者已经对队列上的消息进行循环处理。要记住的一件事是消费者预取,它可以允许一个消费者在其他消息到达队列之前获取许多消息,因此您可能需要根据您的场景调整预取。

在此处阅读 Queue 和 Topic 之间的区别。

于 2014-08-22T10:17:12.623 回答