Есть ли способ настроить один сервер с Apache и Tomcat, который позволяет сервлетам отправлять запросы сервлетам в обычном режиме, но когда придет время перезапустить или переразвернуть,
запустить второй экземпляр с новым боевым файлом
ПОДОЖДИТЕ, пока оно фактически не будет готово обслуживать запросы без обычных случайных ошибок и ответов, которые кажутся нормой в течение первых нескольких минут жизни Tomcat после запуска
аккуратно переключать запросы нового сервлета с Tomcat # 1 на Tomcat # 2. Сессии не участвуют. Это нормально, если соединитель просто прекращает отправку новых запросов в Tomcat # 1, ждет несколько секунд, а затем полностью отключает Tomcat # 1.
просмотрите логи, убедитесь, что Tomcat # 2 (с новым кодом) работает
мгновенно переключить обратно Tomcat # 1, если что-то взорвалось, или выключить Tomcat # 1, если Tomcat # 2 в порядке?
Я видел множество примеров здесь и в других местах, но все они, похоже, имеют один фатальный недостаток: второй экземпляр начинает обрабатывать запросы примерно за 30 секунд до того, как Tomcat действительно будет готов.
Возможно, есть альтернатива AJP, которая добавляет немного дополнительного интеллекта, например, не вводит сервер № 2 в уравнение до тех пор, пока он действительно не будет работать, и, возможно, возвращает альтернативный контент, обслуживаемый самим Apache, если он обнаружит, что ни один экземпляр Tomcat не выглядит как работает нормально?
Также обратите внимание, что (на данный момент, по крайней мере) я не пытаюсь добиться балансировки нагрузки или автоматического перехода на другой ресурс. Я просто пытаюсь найти способ беспрепятственного запуска перезагрузки Tomcat, чтобы никто не заметил, оставив # 1 включенным, пока # 2 не будет готов занять его место. Весь процесс будет контролироваться и лично посещаться.