gpt4 book ai didi

spring-cloud - Eureka 的 self 保护模式永远不会恢复

转载 作者:行者123 更新时间:2023-12-04 12:19:25 24 4
gpt4 key购买 nike

我目前面临一个问题,即 Eureka 永远不会清除由于 VM 意外停机而变得陈旧的服务实例。可以理解,Eureka 的自我保护模式启动是因为服务更新/心跳请求大幅下降(低于阈值)。然而,15 多个小时后,死亡实例仍然在 Eureka 登记。这是一个主要问题,因为服务请求继续被定向到死实例只是为了返回错误。

我的希望是不断调整阈值,一段时间后,Eureka 的阈值将处于新的规范水平,并重置自我保护模式。我们在镜像设置中使用 Eureka,我们的配置不是很复杂。

我们的设置:

Eureka 通过 spring-boot-starter-parent 1.2.5.RELEASE

eureka:
dashboard:
path: services
enabled: false
instance:
hostname: localhost
leaseRenewalIntervalInSeconds: 3
metadataMap:
managementPath: /admin
instanceId: discoveryPrimary
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
server:
waitTimeInMsWhenSyncEmpty: 0

是否可以调整 Eureka 配置以重置自我保护模式(它停止清除实例)并允许它在服务死 5 分钟以上时清除服务注册表?

最佳答案

如果您只有几个服务实例,每次其中任何一个失败时,自我保护都会启动,因为默认情况下 renewalPercentThreshold0.85 .

因此,如果您的实例中只有 84% 续订了租约,则 Eureka 会“开启”自我保护。

这意味着,如果您有 3 个实例并且其中一个失败,则只有 66% 的实例更新了他们的许可证,因此不会取消注册。您可以调renewalPercentThreshold在服务器属性中以适应您的部署。

eureka:
server:
renewalPercentThreshold: 0.49

有了这个,如果您有 2 个实例并且 1 个失败,您仍然很好。

关于spring-cloud - Eureka 的 self 保护模式永远不会恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33150981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com