Spring Cloud Eureka Server 自保和更新门槛

Spring Cloud Eureka Server self preservation and renew threshold

(基本就是两个Eureka server和三个Eureka client微服务)

我想删除以下消息:

EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.

error image

尤里卡服务器 1:

spring.application.name=ms-service-discovery-1
server.port=8761

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.server.enableSelfPreservation= true
eureka.instance.leaseRenewalIntervalInSeconds=1
eviction-interval-timer-in-ms: 1000
eureka.server.wait-time-in-ms-when-sync-empty: 1000
eureka.server.responseCacheUpdateIntervalMs: 1000

尤里卡服务器2:

spring.application.name=ms-service-discovery-2
server.port=8761

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.server.enableSelfPreservation= true
eureka.instance.leaseRenewalIntervalInSeconds=1
eviction-interval-timer-in-ms: 1000
eureka.server.wait-time-in-ms-when-sync-empty: 1000

Eureka的自保模式。如果心跳更新次数低于预期阈值,Eureka 服务器将停止驱逐所有实例。您的 Eureka 服务器中的警告显示发生了这种情况。

请尝试调整以下属性。 85% 是默认值。首先,试着降低下面的 属性 就像 0.50

eureka.renewalPercentThreshold=0.85

或者,您可以使用以下 属性.

禁用自我保护模式
eureka.enableSelfPreservation=false

备注 基本上,所有 Eureka 客户端在关闭时都会自行注销。如果它自己注销成功,就不会出现上述问题。

不幸的是,有时 Spring 基于云的 Eureka 客户端在关闭时不会自行注销,并且症状因 Spring 云版本而异。在大多数情况下,Dalston 和 Edgware 版本可以很好地取消注册。但 Finchley 版本现在似乎并没有取消注册。

此外,如果您在 Eureka 环境中开始 运行 MANY instances,上述消息将消失,因为只有一两个 instances shutdown 不会达到阈值。

您可以找到有关自我保护模式的更多信息here