Как переустановить приложение Springboot без простоя - PullRequest
0 голосов
/ 29 ноября 2018

У меня ограниченные ресурсы, поэтому я не могу установить полную microservices архитектуру с помощью docker & kubernetes, и мое приложение постоянно используется пользователями.

Я должен переустанавливать свое приложение для каждого новогоrelease / hot-fix, знаете ли вы, как я могу добиться этого с минимальным временем простоя?

Информация о моем приложении:

  • Продолжительность запуска на сервере: 80 seconds.
  • Порт: 8080
  • Сервер приложений: embedded tomcat
  • Spring-boot выпуск: 2.0.1.RELEASE.
  • Я за корпоративным nginx обратный прокси.
  • Упаковка: jar
  • Стадия: production

Я думал об этом решении:

  • Настройка внутреннего nginx, который прослушивает порт 8080, а не мое приложение, и пересылает на новый порт.
  • Каждый раз, когда я хочу выполнить развертывание, я запускаю свое приложение на новом другом порту и изменяю nginx conf, а затем перезагружаю его.

Кто-нибудь сталкивался с этой проблемой раньше?или есть мысли как этого добиться?

Заранее спасибо.

1 Ответ

0 голосов
/ 29 ноября 2018

Попросите человека, который запускает корпоративный прокси-сервер nginx, установить баланс нагрузки между двумя экземплярами вашего приложения, например, одним на 8080 и одним на 8081.Затем вы можете обновлять свои приложения по одному.Вам также может потребоваться экстернализировать определенные вещи, например, запускать любое управление сеансами на отдельном хосте, вместо того, чтобы полагаться на обработку сеансов в памяти.

upstream production {
    server 123.456.789:8080;
    server 123.456.789:8081;
}

server {
    listen 80;
    server_name some.host;
    location / {
        proxy_pass http://production;
    }
}

https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/

You 'Вам нужно будет иметь возможность динамически настраивать порт сервера Spring Boot , чтобы приложение прослушивало отдельные порты.Кроме того, вы также можете заставить их работать на отдельных хостах.

...