Как настроить самосохранение Netflix eureka для работы с автомасштабированием? - PullRequest
0 голосов
/ 18 октября 2018

Функция самосохранения, которая никогда не истекает, не выглядит дружественной к способности автоматического масштабирования кластера.Когда мы сокращаем наши сервисы после снижения нагрузки, эти закрытые экземпляры могут вызвать самосохранение.

Насколько я понимаю, самосохранение пытается терпеть кратковременные проблемы в сети.Но уже существуют настройки, которые позволяют нам настраивать некоторое окно допуска:

eureka.instance.lease-expiration-duration-in-seconds = 90
eureka.instance.lease-renewal-interval-in-seconds = 30

Я сталкивался с некоторыми советами не отключать самосохранение, но, похоже, это приносит больше боли, чем усиления.Я что-то пропустил?

1 Ответ

0 голосов
/ 19 октября 2018

Во-первых, вы должны различать нормальное отключение и нечистое завершение клиента Eureka.Режим самосохранения заботится только о нечистом завершении .

А именно, когда вы сокращаете свои серверы, , если вы нормально выключаете свое приложение (отменяете регистрацию), режим самосохранения не будет

Если вы используете клиент Eureka на основе облака Spring, это нормальное отключение будет выполнено при завершении работы приложения.Проблема заключается в том, что в некоторых выпусках Spring Cloud возникает проблема с отправкой сообщения о завершении работы (без регистрации Eureka).Поэтому, если вы хотите убедиться в этом, просто отправьте незарегистрированные сообщения через REST API на сервер Eureka сразу после того, как уменьшите масштабируемые экземпляры.

Другой возможный подход - это просто уменьшить порог самосохранения.

eureka:
  server:
    renewal-percent-threshold: 0.50

Еще одна вещь.Вы должны быть осторожны при изменении значения eureka.instance.leaseRenewalIntervalInSeconds.Исходный исходный код сервера Eureka предполагает, что это значение составляет 30 секунд при расчете порога для режима самосохранения.Я не уверен, что эта жестко запрограммированная часть все еще живет в последней версии Spring Cloud.Вам нужно проверить дважды.

...