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

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

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

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

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

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

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

1 ответ

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

Другие вопросы по тегам