我想知道如果指向某个主题的 MessageListenerContainer 同时收到 2 条(或更多)消息,会发生什么情况。
例如,应用的 2 个用户同时触发发布,因此 2 个 jmstemplate 调用向同一主题发送 2 条不同的消息。
容器将如何处理这个问题?
- 容器是否会创建 2 个同时调用 MessageListenerAdapter 的线程(应实现线程安全)?
- 或者容器只有 1 个线程串行(顺序)调用 MessageListenerAdapter?
最佳答案
并发设置控制有多少监听器同时使用消息。主题不应使用超过 1 个消费者,否则消息可能会在同一节点上被消费两次。
<jms:listener-container
container-type="default"
connection-factory="connectionFactory"
acknowledge="auto"
concurrency="1"
cache="consumer">
<jms:listener destination="TEST.FOO"
ref="simpleMessageListener"
method="onMessage" />
</jms:listener-container>
关于java - Spring JMS MessageListenerContainer 同时接收消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16982205/