Альтернатива AJP, позволяющая упорядоченную передачу обслуживания между старым экземпляром Tomcat со старым warfile и новым экземпляром с новым warfile? - PullRequest
1 голос
/ 20 апреля 2011

Есть ли способ настроить один сервер с 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 не будет готов занять его место. Весь процесс будет контролироваться и лично посещаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...