Пружинный ботинок 2, причал изящное отключение - PullRequest
1 голос
/ 17 октября 2019

Я работаю над проектом, используя Spring boot 2.1 и встроенный Jetty Server 9, и столкнулся с проблемой реализации механизма изящного завершения работы. После обсуждения с командой было решено реализовать следующую политику постепенного отключения:

  1. все уже поступающие запросы должны быть завершены
  2. все входящие запросы после сигнала SIGTERM должны быть отклонены с 503 status code
  3. конечная точка работоспособности должна работать после SIGTERM Кроме того, приложение использует mongodb в качестве базы данных, и если запрос связывается с mongo, он должен выполняться как обычно.

Если я установил флаг setStopAtShutdown(true)и setStopTimeout() сервера Jetty со всеми включенными конечными точками /health начинает быть недоступен, но без этих опций они получают новые запросы после SIGTERM. Также контекст приложения вызывает метод close() и bean-компоненты начинают разрушаться. Таким образом, запросы зависят от сбоя Монго с исключениями. Можем ли мы помочь мне с этой проблемой?

...