相关疑难解决方法(0)

如何使用java和spring 3.0从JMS主题(而不是队列)同时处理多个消息?

请注意,我希望多个消息侦听器同时处理来自主题的连续消息.此外,我希望每个消息监听器都以事务方式运行,以便给定消息监听器中的处理失败将导致该监听器的消息保留在该主题上.

Spring DefaultMessageListenerContainer似乎只支持JMS队列的并发性.

我是否需要实例化多个DefaultMessageListenerContainers?

如果时间沿垂直轴向下流动:

ListenerA reads msg 1        ListenerB reads msg 2        ListenerC reads msg 3
ListenerA reads msg 4        ListenerB reads msg 5        ListenerC reads msg 6
ListenerA reads msg 7        ListenerB reads msg 8        ListenerC reads msg 9
ListenerA reads msg 10       ListenerB reads msg 11       ListenerC reads msg 12
...
Run Code Online (Sandbox Code Playgroud)

更新:
感谢您的反馈@ T.Rob和@skaffman.

我最终做的是在消息监听器中创建多个DefaultMessageListenerContainerswith concurrency=1然后放入逻辑,以便只有一个线程处理给定的消息id.

java concurrency messaging spring jms

14
推荐指数
1
解决办法
3万
查看次数

标签 统计

concurrency ×1

java ×1

jms ×1

messaging ×1

spring ×1