我有一个'点对点'IBM MQ队列接收来自多个生产者的消息。我的应用程序使用队列中的消息。我使用spring'jmstemplate“和”DefaultMessageListenerContainer“来异步使用消息。
我的应用程序在2个jvms上运行,这意味着每个jvm上有2个侦听器在侦听同一个队列。
回答我的问题,如果收到消息......
1)听众如何知道消息到达队列?
2)在两个听众中,哪一个会收到消息?将消息分发给侦听器的方法是什么?
3)我可以为单个队列扩展到'N'个侦听器吗?如果我成长为10个听众,缩放是如何工作的?如何将消息分发给听众?
4)MQ服务器如何确保不向多个侦听器发送相同的消息?
可能这些是简单的问题,但无法深入了解上述方案的工作原理。请分享你的想法...
答案 0 :(得分:5)
如果使用事务并将消息回滚到队列中;无法保证同一个侦听器将获得重新传递的消息。