2010-12-16 3 views
1

У меня возник вопрос относительно перехода на другой ресурс с сервера приложений JBoss (5.1) под управлением JBoss ESB 4.9. Начну с диаграммой:Отказоустойчивость сервера приложений JBoss

diagram

У нас есть унаследованное приложение («Наследие Producer») по производству данных на унаследованный транспорте («Наследие транспорт»). Мы написали сервис ESB («Шлюз»), который прослушивает старый транспорт и помещает сообщения, полученные в ESB. Затем сообщения следуют нескольким шагам оркестровки, которые необходимо обработать.

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

Каков правильный способ реализации этого типа отказоустойчивости?

ответ

1

Правильный способ заключается в использовании JMS-кластеризации между узлами. Вам нужно посмотреть документацию AS/JBoss Messaging (или HornetQ) о том, как это сделать, ESB не содержит никаких быстрых команд, чтобы продемонстрировать это.

Может потребоваться несколько шагов, чтобы опубликовать информацию jUDDI на обоих узлах, но в инструкциях есть инструкции, как это сделать. Проверьте «Руководство по программированию» 7.1 «Поддержка отказа и поддержки балансировки нагрузки»

+1

более конкретно, если «Legacy Transport» основан на файловой системе, как вы убедитесь, что между двумя экземплярами файлы FileGatewayListeners, например: файл отображается в контролируемой папке, оба триггера запускаются одновременно, один прослушиватель переименовывает файл, добавляя суффикс .inProgress, а немного медленнее не удается переименовать файл, поскольку он уже переименован? Существует ли какая-либо конфигурация кластеров, которая предотвращает эту проблему? – 2012-02-07 13:08:33

Смежные вопросы