Во-первых, вы должны различать нормальное отключение и нечистое завершение клиента Eureka.Режим самосохранения заботится только о нечистом завершении .
А именно, когда вы сокращаете свои серверы, , если вы нормально выключаете свое приложение (отменяете регистрацию), режим самосохранения не будет
Если вы используете клиент Eureka на основе облака Spring, это нормальное отключение будет выполнено при завершении работы приложения.Проблема заключается в том, что в некоторых выпусках Spring Cloud возникает проблема с отправкой сообщения о завершении работы (без регистрации Eureka).Поэтому, если вы хотите убедиться в этом, просто отправьте незарегистрированные сообщения через REST API на сервер Eureka сразу после того, как уменьшите масштабируемые экземпляры.
Другой возможный подход - это просто уменьшить порог самосохранения.
eureka:
server:
renewal-percent-threshold: 0.50
Еще одна вещь.Вы должны быть осторожны при изменении значения eureka.instance.leaseRenewalIntervalInSeconds
.Исходный исходный код сервера Eureka предполагает, что это значение составляет 30 секунд при расчете порога для режима самосохранения.Я не уверен, что эта жестко запрограммированная часть все еще живет в последней версии Spring Cloud.Вам нужно проверить дважды.