什么时候从 Jms 中的单个会话创建多个消费者有用?

When is it useful creating multiple consumers from a single session in Jms?

我阅读了 activemq 的多个消费者文档:http://activemq.apache.org/multiple-consumers-on-a-queue.html

它说The JMS contract is that only 1 session is used by one thread at once - which if you're using consumers means that only 1 consumer can receive messages at once if using the same session.,所以当需要有多个消费者时,我们应该总是创建多个会话。

但是 JMS 的 api 确实有从单个会话创建多个消费者的方法,而且看起来工作正常。

我想知道一个会话多个消费者的一些特殊条件是否有价值?或者这只是一个无用的功能?

这里真正的问题是并发性。如果您从单个会话创建多个消费者并且从不同时使用这些消费者,那么您就不会有问题。

我想不出针对从单个会话创建并连续使用的多个消费者的特定用例,但这并不意味着不存在合法用例。