JMS能否保证队列中的消息一次只能接收一个接收者实例?

时间:2014-10-24 17:22:28

标签: java jms activemq spring-jms

让我们说如果有一个发送者逐个向队列发送100条消息,而三个接收者从队列接收消息,则JMS默认定义接收者不会接收相同的消息所以每个接收器将被分配不同的消息?或者它是否可配置以执行此操作?

2 个答案:

答案 0 :(得分:3)

是的,队列中的消费者总是在争夺消息。

另一方面,

主题是发布/订阅(所有消费者都得到它们)。

如果消费者爆炸并重新传递信息;不能保证消息会传递给同一个消费者。

答案 1 :(得分:3)

  

"多个队列发送者和队列接收者可以与单个队列相关联,但是单个消息只能传递给一个队列   队列接收器。
  如果多个队列接收器正在侦听队列中的消息,WebLogic JMS将确定哪个队列接收器将接收下一个消息   先到先得。如果没有队列接收器正在侦听   队列,消息保留在队列中,直到队列接收器   附加到队列"

来自Weblogic

是的,只有一个听众会收到消息。如果要发送给多个侦听器,请使用topic而不是Queue。