Выбор ответа Senior Spring Boot и автоконфигурация обновлено
Корректная остановка
Вопрос
Под Kubernetes перезапускает под, и часть запросов обрывается с ошибкой. Что включить в Spring Boot?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: server.shutdown=graceful и readiness-проба, чтобы снимать трафик. При graceful shutdown веб-сервер перестаёт принимать новые запросы и даёт текущим завершиться в пределах spring.lifecycle.timeout-per-shutdown-phase.
Варианты ответа
spring.main.lazy-initialization=true, чтобы под быстрее стартовалserver.shutdown=gracefulи readiness-проба, чтобы снимать трафикправильный ответ- Увеличить
-Xmx, чтобы под не убивали за память при остановке spring.jpa.open-in-view=false, чтобы соединения закрывались раньше
Разбор
При graceful shutdown веб-сервер перестаёт принимать новые запросы и даёт текущим завершиться в пределах spring.lifecycle.timeout-per-shutdown-phase. Вместе с readiness-пробой (Actuator переводит её в OUT_OF_SERVICE при остановке) и небольшой задержкой preStop это убирает обрывы. С Boot 3.4 graceful включён по умолчанию, в более ранних его нужно включать явно. Ленивая инициализация, память и OSIV на остановку не влияют.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.