Использование нескольких серверов MQ в Java Spring Boot - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть Java приложение Spring Boot, и мне нужно отправить сообщения через IBM MQ, а затем прослушать ответ в соответствующей очереди. У меня есть основной и (возможно, несколько) резервных хостов MQ. Имена очередей на каждом хосте разные (я не могу это контролировать), поэтому мне нужно иметь разные фабрики соединений для каждого хоста.

Я посмотрел код mq-jms-spring и думаю, Я могу приспособить это к своим потребностям. Однако наш текущий код, который работает с разделенным запятыми списком хостов (и был написан кем-то другим), создает и фабрику соединений, и менеджер транзакций, используя эту фабрику соединений. Он может использовать несколько хостов, но так как имена очередей различны для каждого хоста, переключение при сбое, ну, в общем, происходит сбой. Я предполагаю, что мне нужно создать несколько менеджеров транзакций, если у меня несколько фабрик соединений.

Мои вопросы:

  1. Нужен ли мне менеджер транзакций в этом случае?
  2. Если да, то мне нужно отношение фабрики соединений 1-1 к диспетчеру транзакций?
  3. Если да, как я могу использовать несколько менеджеров транзакций? Я использую фабрику соединений для записи в очередь, но как мне уведомить Spring, какую фабрику транзакций использовать? Spring автоматически это знает или мне нужно как-то это настроить?
...