Сервис Openshift недоступен после короткого простоя - PullRequest
3 голосов
/ 24 сентября 2019

У нас есть наш проект, размещенный в OpenShift (если быть точным, OKD, мы принимаем его сами).Настройка выглядит следующим образом:

  • Сервер маршрутизации (Spring Boot 1.5.8 с Zuul): он принимает весь входящий трафик и направляет его на нужные службы

  • Несколько сервисов (все с Spring Boot): вот вся бизнес-логика

В настоящее время, когда мы вызываем приложение, вызов переходит на пограничный сервер, которыйзатем направляет его в основной бизнес-сервис.После непродолжительного простоя, продолжавшегося около часа, наша основная бизнес-услуга недоступна через внешний звонок.Однако пограничный сервер доступен и может вызываться в 100% случаев.Мы получаем исключение 504 Gateway Timeout из системы, когда мы его вызываем.Мы уже выяснили, что это тайм-аут маршрута в openshift (haproxy.router.openshift.io/timeout в маршруте).

Мы увеличили все тайм-ауты Zuul, Ribbon и маршрута, но это только обходной путь.Основная проблема заключается в том, что OpenShift, по-видимому, переводит основной бизнес-сервис в спящий режим после бездействия около часа.

Как мы можем отключить это поведение?

Редактировать 1:

  • У нас такое же приложение в обычных "старомодных" виртуальных машинах.У нас там нет никаких проблем.
  • Мы заметили, что звонки можно «поддерживать в живых», когда мы называем их регулярными.Мы создали небольшой сервис, который вызывает методы регулярные (каждые 15 минут).Таким образом, это похоже на работу.Но это не готовый к работе обходной путь IMO.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...