Мы хотим развернуть новую версию EJB, дело в том, что несколько EJB и WAR зависят от этого EJB. Таким образом, мы должны перезапускать сервер каждый раз, чтобы убедиться, что все EJB / WAR запущены и работают правильно.
Основная трудность здесь заключается в большом количестве зависимостей, поэтому слишком много работы, чтобы включать / отключать каждое приложение все время, когда мы развертываем более новую версию EJB с несколькими зависимыми объектами, перезапуск сервера быстрее и безопаснее для нас.
Мы пытаемся понять, как избежать простоев нашей среды. Нам необходимо быть в сети все время, и для этого перезапуск сервера не является жизнеспособным решением.
Мы используем JBoss EAP 6.3.
Какой подход можно применить в этих случаях?
Радослав Гусар объясняет в этом обсуждение как решить развертывание в производственных средах с минимальным временем простоя.
Чтобы сделать это на автономном JBoss / WildFly, нужно:
- запустить новый узел AS, развернуть новую версию приложения
- перейти к
mod_cluster
консоль менеджера, отключите контекст со старой версией- слить все сессии из старой версии приложения
- удалить старый экземпляр
Если вы уже работаете в режиме высокой доступности и данные сеанса совместимы через новую и старую версии приложения:
- слить сеансы с 1-го узла кластера
- обновить приложение, вернуть узел
- повторить для всех серверов
Если вы используете режим высокой доступности, но данные сеанса несовместимы:
- то же, что и выше, за исключением того, что серверы добавляются обратно в другой кластер с другой группой балансировки нагрузки, чтобы данные сеанса не конфликтовали.