У нас есть наш проект, размещенный в OpenShift (если быть точным, OKD, мы принимаем его сами).Настройка выглядит следующим образом:
В настоящее время, когда мы вызываем приложение, вызов переходит на пограничный сервер, которыйзатем направляет его в основной бизнес-сервис.После непродолжительного простоя, продолжавшегося около часа, наша основная бизнес-услуга недоступна через внешний звонок.Однако пограничный сервер доступен и может вызываться в 100% случаев.Мы получаем исключение 504 Gateway Timeout
из системы, когда мы его вызываем.Мы уже выяснили, что это тайм-аут маршрута в openshift (haproxy.router.openshift.io/timeout
в маршруте).
Мы увеличили все тайм-ауты Zuul, Ribbon и маршрута, но это только обходной путь.Основная проблема заключается в том, что OpenShift, по-видимому, переводит основной бизнес-сервис в спящий режим после бездействия около часа.
Как мы можем отключить это поведение?
Редактировать 1:
- У нас такое же приложение в обычных "старомодных" виртуальных машинах.У нас там нет никаких проблем.
- Мы заметили, что звонки можно «поддерживать в живых», когда мы называем их регулярными.Мы создали небольшой сервис, который вызывает методы регулярные (каждые 15 минут).Таким образом, это похоже на работу.Но это не готовый к работе обходной путь IMO.