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

Правильный метод перезагрузки приложения Spring (Tomcat)?

Не уверен, что это вопрос ServerFault или StackOverflow. Я публикую его здесь, так как это больше связано с сервером.

Мы запускаем приложение SpringBoot (Java), работающее в контейнере Tomcat на сервере Ubuntu (как REST API). Как и ожидалось, время от времени нам потребуется загрузить новую версию приложения, и мне интересно, какой метод перезапуска является предпочтительным?

В настоящее время мы используем сценарий оболочки, который обнаруживает, что файл JAR с определенным именем присутствует в определенном каталоге, и, если он найден, останавливает процесс, перемещает новый файл, создает резервную копию старого файла и перезапускает приложение, используя новый JAR-файл.

Проблема в том, что иногда Tomcat может потребоваться до 15 секунд для перезапуска, в результате чего служба REST остается отключенной на это время. Времени не много, но 15 секунд в нашем мире - это вечность.

Я в основном спрашиваю, хороший это или ужасный способ сделать это, и есть ли что-то, что можно сделать иначе, чтобы ускорить перезагрузку приложения REST.

Заранее спасибо за любые указатели ...

Я мог бы предложить простое решение, вы должны поставить обратный прокси перед tomcat, например nginx, запустите новый экземпляр tomcat на другом порту изменить nginx конфигурацию восходящего потока и перезагрузите ее.