Эврика никогда не отменяет регистрацию услуги
В настоящее время я сталкиваюсь с проблемой, когда Eureka не отменяет регистрацию зарегистрированного сервиса. Я вытащил пример сервера Eureka прямо из git hub и сделал только одно изменение,eureka.enableSelfPreservation = false
, Мой application.yml выглядит так:
server:
port: 8761
eureka:
enableSelfPreservation: false
client:
registerWithEureka: false
fetchRegistry: false
server:
waitTimeInMsWhenSyncEmpty: 0
Я читал, что если 85% зарегистрированных служб перестают доставлять сердечные сокращения в течение 15 минут, Эврика предполагает, что проблема связана с сетью, и не отменяет регистрацию служб, которые не отвечают. В моем случае у меня работает только одна служба, поэтому я отключил режим самосохранения. Я резко убиваю процесс, и Эврика оставляет службу зарегистрированной на неопределенное время.
Application.yml моего клиента выглядит так:
eureka:
instance:
leaseRenewalIntervalInSeconds: 3
client:
healthcheck:
enabled: true
serviceUrl:
defaultZone: http://localhost:8761/eureka/
appInfo:
replicate:
interval: 3
initial:
replicate:
time: 3
spring:
rabbitmq:
addresses: ${vcap.services.${PREFIX:}rabbitmq.credentials.uri:amqp://${RABBITMQ_HOST:localhost}:${RABBITMQ_PORT:5672}}
Моя цель - создать демонстрацию, в которой Eureka быстро обнаруживает, что служба больше не работает, а другая запущенная служба может быстро зарегистрироваться.
На данный момент, когда клиент eureka запущен, он регистрируется за 3 секунды. Он просто никогда не отменяет регистрацию, когда служба внезапно прерывается. После того, как я убью службу, панель управления Eureka гласит:
ЧРЕЗВЫЧАЙНАЯ СИТУАЦИЯ! EUREKA МОЖЕТ БЫТЬ НЕПРАВИЛЬНО ПРЕТЕНЗУЮЩИМ МОМЕНТАМИ, КОГДА ОНИ НЕТ. ОБНОВЛЕНИЯ МЕНЬШЕ, ЧЕМ ПРЕДПОЛАГАЕТСЯ, И ПОЧЕМУ МОМЕНТЫ НЕ БЫЛИ СРОЧНЫ, ПРОСТО БЕЗОПАСНЫ.
Как я могу предотвратить это поведение?