Как развернуть файл WAR Java на рабочем сервере без простоев. В настоящее время я использую Apache2 -> Jetty6, когда мне нужно обновить веб-приложение, я распаковываю архив в каталог, а затем перезапускаю службу Jetty.
/etc/init.d/jetty6 restart
Перезапуск может занять 5 минут. Есть ли другой способ? Как это делают «большие» сайты?
По моему опыту, горячее развертывание, такое как JBoss, не удается, потому что сборщик мусора не собирает все, а службе / процессу не хватает памяти, улучшилась ли ситуация?
Как насчет этого. Создайте сценарий, который выполняет следующие действия:
Вам нужно позаботиться о следующих вещах:
Чтобы сохранить сеансы при перезапуске приложения, вам понадобится центральное место для хранения сеанса, которое находится за пределами приложения. Например. 2 базы данных с репликацией или memcached с репликацией.
При изменении базы данных вам необходимо убедиться, что новое приложение указывает только на базу данных с новой структурой. Не удаляйте поля и не делайте новую структуру несовместимой со старым приложением. Например. не удаляйте атрибуты и не меняйте их тип.
Настройте apache для использования балансировки нагрузки с двумя серверами приложений (которые могут работать на одном сервере). Используйте липкость сеанса. Когда один из серверов развернут, другой может отвечать на запросы.
Большие сайты используют распределенную AS с кластерами серверов, циклическим DNS, балансировщиками нагрузки ...