Skip to content

关闭 Eureka Server 的自我保护

🏷️ Spring Cloud Eureka

如果 Eureka Client 关了,Eureka Server 会自动注销该实例,也可以通过命令关闭 (=> 注销 Eureka 服务 )。
但是如果实例的总数比较少,比如开发时一般只有一个实例,此时并不会自动从 Eureka Server 中注销,Eureka Server 会默认开启自我保护,自我保护状态下不会删除任何实例。

通过修改 Eureka Server 的配置文件(application.yml)可以关闭自我保护。

yaml
eureka:
  server:
    enableSelfPreservation: false

通过配置 Eureka Client 的 application.yml 来缩短实例从 Eureka Server 注销的时间。

yaml
eureka:
  instance:
    leaseRenewalIntervalInSeconds: 1
    leaseExpirationDurationInSeconds: 2
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:8761/eureka/
    healthcheck:
      enabled: true
    lease:
      duration: 5

关闭自我保护后,Eureka 界面会出现如下一行红字。

参考:

  1. Eureka never unregisters a service
  2. spring-cloud-eureka-example