У меня возник вопрос относительно перехода на другой ресурс с сервера приложений JBoss (5.1) под управлением JBoss ESB 4.9. Начну с диаграммой:Отказоустойчивость сервера приложений JBoss
У нас есть унаследованное приложение («Наследие Producer») по производству данных на унаследованный транспорте («Наследие транспорт»). Мы написали сервис ESB («Шлюз»), который прослушивает старый транспорт и помещает сообщения, полученные в ESB. Затем сообщения следуют нескольким шагам оркестровки, которые необходимо обработать.
Это правильно работает с одним запущенным сервером приложений. Однако мы хотим разрешить отказ сервера приложений. Тогда наивное решение состоит в том, чтобы встать на два таких сервера приложений (как показано) в кластерной конфигурации. Однако, поскольку это приведет к репликации служб шлюза, результатом будет две копии каждого сообщения, публикуемого на ESB и обработанного, нежелательного результата.
Каков правильный способ реализации этого типа отказоустойчивости?
более конкретно, если «Legacy Transport» основан на файловой системе, как вы убедитесь, что между двумя экземплярами файлы FileGatewayListeners, например: файл отображается в контролируемой папке, оба триггера запускаются одновременно, один прослушиватель переименовывает файл, добавляя суффикс .inProgress, а немного медленнее не удается переименовать файл, поскольку он уже переименован? Существует ли какая-либо конфигурация кластеров, которая предотвращает эту проблему? – 2012-02-07 13:08:33