从两个JMS InboundChannel适配器中喂食一个发布订阅频道



我只想询问从您的角度来看,以下si配置是可以的....

让我们以某些订阅者的形式进行以下发布订阅频道...

<int:publish-subscribe-channel id="channelName" ignore-failures="false"/>

并从两个JMS消息驱动的适配器中馈送它:

<jms:message-driven-channel-adapter channel="channelName"
                                destination="JMSQueue1"
                                connection-factory="JMSQueue1CF1"
                                concurrent-consumers="1"
                                max-concurrent-consumers="10"
                                error-channel="errorChannel"
                                acknowledge="transacted"
                                task-executor="mySimpleTaskExecutor1"/>

<jms:message-driven-channel-adapter channel="channelName"
                                destination="JMSQueue2"
                                connection-factory="JMSQueue2CF2"
                                concurrent-consumers="1"
                                max-concurrent-consumers="10"
                                error-channel="errorChannel"
                                acknowledge="transacted"
                                task-executor="mySimpleTaskExecutor2"/>

如果这两个JMS入站通道适配器都将具有相同的输出通道(" ChannelName"(,它们是否会以某种方式干扰其处理?

我的猜测是,来自两个队列的每条消息都将在不同的线程中消费,因此JMSqueue1的消息处理不会等待JMSqueue2的消息。

true还是不正确?

在同一频道上拥有多个生产商没有问题;线程不会彼此"干扰"。

它与在消息驱动的适配器中具有并发完全相同(您拥有(。

最新更新