У меня есть приложение, в котором я создал 2 контейнера прослушивателей сообщений для внешней системы A, которые слушают две очереди соответственно.
Также у меня есть 1 контейнер приемника сообщений, который запускает и прослушивает другую очередь внешней системы B. Я использую Spring DefaultMessageListenerContainer.
Мое приложение работает в кластерной среде, при определении контейнера прослушивателя сообщений я внедрил в него свой прослушиватель, который реализует интерфейс javax MessageListener и действует как своего рода MDB.
Итак, мои вопросы:
- Нормально ли иметь экземпляр контейнера прослушивателя сообщений в очереди?
- Будет ли мой pojo (MDP), управляемый сообщениями, выполняться onMessage () на каждом узле приложения?
- Если да, как я могу избежать этого? Я хочу, чтобы каждое сообщение использовалось один раз на некоторых узлах приложения.
- Каково поведение по умолчанию DefaultMessageListenerContainer, сообщение подтверждается, как только я достиг onMessage или после того, как я закончил выполнение onMessage? Или, может быть, мне нужно подтвердить это вручную?