Olá Hamilton,
Essa mensagem significa que o Eureka pode estar mostrando instâncias cujos serviços não estejam mais em execução. Isso ocorre porque o Eureka não cancela o registro da instância se os serviços forem interrompidos abruptamente.
Durante a inicialização, os clientes (ou serviços) fazem uma chamada ao servidor Eureka para se auto registrar. Quando ocorre um desligamento normal após o uso, os clientes acionam outra chamada para que o servidor possa eliminar todos os dados relacionados ao cliente (chamador). Para lidar com desligamentos inesperados de alguma instância, o servidor espera heartbeats (pulsações) do cliente em intervalos específicos. Isso se chama taxa de renovação. Se o servidor parar de receber a pulsação por um período especificado, ele começará a "desalojar" as instâncias obsoletas.
O mecanismo que faz com que o Eureka não encerre as instâncias obsoletas é chamado de autopreservação (self-preservation), pois pode ser de fato apenas um problema de rede ou inatividade que cause a não identificação desses heartbeats pelo Eureka. Essa configuração já vem habilitada por padrão, mas há algumas modificações e outras configurações que podem ser incluídas no application.properties que influenciam/evitam que a mensagem seja exibida, como as abaixo:
- eureka.server.enable-self-preservation: o valor padrão é true, mas pode ser passado para false
- eureka.server.expected-client-renewal-interval-seconds: intervalo que o servidor espera os heartbeats do clientes. O valor padrão é 30
- eureka.instance.lease-expiration-duration-in-seconds: tempo que Eureka espera desde o último heartbeat antes de considerar a instância obsoleta. Valor padrão é 90.
- eureka.server.eviction-interval-timer-in-ms: Tempo para que o Eureka Server desaloje as instâncias. Padrão 60.
- eureka.server.renewal-percent-threshold: Essa propriedade calcula a quantidade esperada de heartbeats por minuto para cada cliente registrado. O valor padrão é 0.85.
- eureka.server.renewal-threshold-update-interval-ms: Essa propriedade indica ao Eureka para rodar um job para calcular novamente a quantidade de heartbeats esperados. Valor padrão é 15 minutos.
Se a dúvida permanecer, não deixe de nos informar por aqui.
Bons estudos! 😄
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!