如何让所有消费者参与处理待处理的消息?

时间:2013-09-13 11:39:35

标签: jms activemq

我们在Activemq中有10条消息,我们启动了2个消费者。但只有第一个消费者使用和处理消息。第二个消费者没有消费消息。

如果我在第一个消费者处理时间时再向Queue发送一条消息,则第二个消费者仅消费和处理该特定消息(我们在第一个消费者处理时间时发送了1条消息)。之后它没有消耗待处理的消息。

最后我明白了,所有待处理的消息都是由第一个消费者处理而不是剩下的消费者。

我想让所有消费者参与处理待处理的消息。

感谢。

1 个答案:

答案 0 :(得分:1)

我认为你所看到的是prefetch limit导致一个消费者预先占用大量消息,从而使其他消费者挨饿。您需要降低消费者prefetch限制,以便代理不会急切地将消息发送给第一个连接的消费者,并允许其他消费者联机以帮助平衡负载。

在您的情况下,预取限制为1将允许所有消费者跳入并获得一些工作。