Приложение Spring Boot + проверка жизнеспособности / готовности Kubernetes

return DateTime.ParseExact(dateInString, "M/d/yyyy", CultureInfo.InvariantCulture);

Проверьте это здесь

Разница между моим ответом и Fabulous 'заключается в том, что я также сократил dd до d, поэтому, если ваш пользователь пишет 6/6/2018 он тоже будет работать

3
задан Ivan Aracki 19 January 2019 в 17:57
поделиться

3 ответа

Мы использовали Привод начальной загрузки Spring пользовательская Проверка состояния для проверки Живучести и Готовности. У Вас может быть своя пользовательская логика, чтобы определить, можете ли Вы служить запросу или нет. Если Вы можете служить, запрос затем поддерживают переходную приставку или иначе перезапускают его. Для соединения с базой данных перезапуск проблем только поможет, если Ваши соединения застрянут и не выпущены.

0
ответ дан 6 December 2019 в 01:00
поделиться

Мы используем стандарт/actuator/health конечная точка и для живучести и для готовности, и были для близко к году теперь. Положительные стороны этого - то, что приложение не отмечено как готовое к употреблению, если все его соединения не в порядке. Оборотная сторона происходит из-за некоторых случаев ошибочных соединений, который приводит ко времени простоя/перезапускам.

В моем уме, приложение, которое не содержит соединения с его базой данных (или другая важная инфраструктура) так же хорошо как бесполезное. Поскольку это, вероятно, не будет функционировать правильно, Вы могли бы также сообщить, что это недоступно. Таким образом, если у Вас нет проблем с плохим соединением с базой данных или другими вещами, я не могу действительно видеть вред использования/actuator/health и для живучести и для готовности. Кроме того, это - дешевый способ проверить, в порядке ли Ваше приложение, который требует, чтобы очень мало физического труда настроило.

0
ответ дан 6 December 2019 в 01:00
поделиться

ReadinessProbe - действительно ли приложение готово обработать запросы?

Использование проверка состояния, чтобы проверить, готово ли приложение обработать новые запросы. Это может быть реализовано в /actuator/health. Также см. StartupProbe ниже.

При высокой загрузке?

, Если Ваше приложение находится под высокая загрузка , это не может отвечать на проверке состояния вовремя, приводя к [1 115] ReadinessProbe к [1 116] сбой . Рассмотрите использование Горизонтальный Автосчетчик Переходной приставки , чтобы заставить больше копий обрабатывать загрузку.

LivenessProbe - приложение заведено в тупик?

, Если Ваше приложение находится в неисправимом состоянии, лучше, если оно может завершить себя, например, использование java.lang.System.exit(1). Если приложение может быть заведено в тупик, не мог продолжиться, рассмотреть реализацию конечной точки для LivenessProbe, это может совпасть с для ReadinessProbe.

Не готовность ответа в долгое время

, Если Ваше приложение не ответило ReadinessProbe в долгое время, например, много минут, что-то, вероятно, неправильно (если Вы не ожидаете, что это произойдет для Вашего приложения), затем Вы должны, вероятно, также иметь /actuator/health как Ваш LivenessProbe, но с более высоким failureThreshold и высокий initialDelaySeconds (например, несколько минут)

StartupProbe - лучшая альтернатива на Kubernetes 1.16 +

, ReadinessProbe является самым полезным во время запуска приложения, так как это, возможно, должно загрузиться, например, данные, прежде чем это будет готово получить запросы - , но , ReadinessProbe выполняется периодический в течение жизненного цикла переходной приставки. StartupProbe является теперь лучшей альтернативой для медленных стартовых приложений в сочетании с [1 123] LivenessProbe, который только активен после StartupProbe. Вам, возможно, все еще понадобится ReadinessProbe, чтобы уведомить, что переходная приставка готова обработать запросы.

В зависимости от других сервисов

, Если Ваше приложение зависит от других сервисов, которые являются не здоровы - лучше, если Ваш приложение может восстановиться с тех ситуаций, когда сервис поддержки закончился снова, например, снова соединиться. Иначе это будет цепная реакция домино , если у Вас будет цепочка сервисов, которая не отвечает на [1 128] ReadinessProbe или LivenessProbe, потому что последнее приложение в цепочке имеет проблему. Рассмотрите для обеспечения , ухудшился сервис, уведомьте, что Вы не находитесь в полном сервисе, возможно, некоторые Ваши конечные точки все еще работают корректные.

Порт Сервера управления Использования

Это kubelet на том же узле, которые отправляют тестовые запросы. Рассмотрите для использования Порт Сервера управления для датчиков. Вы не должны выставлять этот порт эти Service, лучше для использования одного порта для [1 132] http и другой для [1 133] управление .

Сервисная проверка состояния Подсистемы балансировки нагрузки Облачного поставщика

при использовании Подсистемы балансировки нагрузки Облачного поставщика она может сделать проверки состояния на сервисах, и Вы, возможно, должны настроить путь, она пересылает проверки состояния, например, Платформа Google Cloud значения по умолчанию к /. Это - проверка состояния для Сервис не для Переходной приставки индивидуума .

2
ответ дан 6 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: