Назад | Перейти на главную страницу

Tomcat Parallel Deployment, автоматическое удаление старых приложений

Я уже некоторое время использую параллельное развертывание Tomcat 8 как часть установки непрерывного развертывания с нулевым временем простоя.

После запуска тестовой перчатки сервер CI автоматически переименовывает файл .war в application ## {номер-версии} .war и копирует war в папку / webapp. Приложение ## 333 будет прекрасно сосуществовать с приложением ## 332.

Единственная проблема, с которой я сталкиваюсь, заключается в том, что мне приходится вручную отменять развертывание старых приложений после того, как весь трафик (новые сеансы) автоматически перешел на новый.

Есть ли в Tomcat какой-то встроенный механизм, говорящий «эй, когда эта служба сокращает количество сеансов до нуля, ее следует удалить»? Может быть, какое-то событие «только что истекла последняя сессия», к которому я могу подключиться.

Если кто-нибудь еще автоматизировал развертывание такого рода приложений, я хотел бы услышать об этом. Спасибо!

Вы можете настроить Tomcat для удаления старых приложений. Вам нужно добавить undeployOldVersions атрибут к Host элемент и установите для него true. Вам нужно будет изменить свой хост в server.xml на что-то вроде следующего:

<Host undeployOldVersions="true" ...>
   ...
</Host>

Увидеть Документация хоста для подробностей. В частности, это работает только при включенном автоматическом развертывании.