Подача одного канала подписки на публикацию от двух адаптеров входящего канала JMS? - PullRequest
0 голосов
/ 13 мая 2019

Я просто хочу спросить, подходит ли следующая конфигурация СИ с вашей точки зрения ....

Давайте иметь следующий канал подписки на публикацию с некоторыми подписчиками ...

<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.

Правда или не правда?

1 Ответ

1 голос
/ 13 мая 2019

Нет проблем с наличием нескольких производителей на одном канале;потоки не будут «мешать» друг другу.

Это точно так же, как параллелизм в адаптере, управляемом сообщениями (который у вас есть).

...