Правильный способ перезагрузки приложения Spring (Tomcat)?
Не уверен, что это вопрос ServerFault или StackOverflow. Я публикую это здесь, так как это больше связано с сервером.
Мы запускаем приложение SpringBoot (Java) в контейнере Tomcat на сервере Ubuntu (как REST API). Как и ожидалось, будут времена, когда нам нужно будет загрузить новую версию приложения, и мне интересно, каков предпочтительный способ перезапуска?
В настоящее время мы используем сценарий оболочки, который определяет наличие JAR-файла с определенным именем в определенном каталоге и, если он найден, останавливает процесс, перемещает новый файл, создает резервную копию старого файла и перезапускает приложение с использованием нового Файл JAR.
Проблема заключается в том, что иногда Tomcat может перезапускаться до 15 секунд, в результате чего служба REST не работает в течение этого времени. Не много времени, но 15 секунд в нашем мире - это вечность.
Я в основном спрашиваю, является ли это хорошим или ужасным способом решения этой проблемы, и есть ли что-то, что можно сделать по-другому, чтобы ускорить перезагрузку приложения REST.
Заранее спасибо за любые указатели...
1 ответ
Я мог бы предложить простое решение, вы должны поставить обратный прокси перед tomcat, например nginx
, начать новый экземпляр tomcat
на другой порт, поменяй nginx
вышестоящая конфигурация и перезагрузите ее.