res*_*asy 7 spring-cloud netflix-eureka
我目前正面临一个问题,即Eureka从未清除因虚拟机意外停机而变得陈旧的服务实例.可以理解的是,Eureka的自我保护模式已经启动,因为在服务续订/心跳请求中存在大幅下降(低于阈值).然而,15个多小时后,死亡的实例仍在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
Run Code Online (Sandbox Code Playgroud)
是否可以调整Eureka配置以重置自我保存模式(停止清除实例的位置)并允许它在服务已停止5分钟以上时清除服务注册表?
如果您的服务只有几个实例,那么每当其中任何一个实例失败时,自我保护就会启动,因为默认情况下renewalPercentThreshold是0.85.
因此,如果只有 84% 的实例更新了租约,尤里卡就会“开启”自我保护。
这意味着,如果您有 3 个实例,其中一个失败,则只有 66% 的实例更新了许可证,因此没有一个实例会被取消注册。您可以调整renewalPercentThreshold服务器属性以适合您的部署。
eureka:
server:
renewalPercentThreshold: 0.49
Run Code Online (Sandbox Code Playgroud)
这样,即使您有 2 个实例,其中 1 个实例失败,您仍然可以正常工作。
| 归档时间: |
|
| 查看次数: |
3712 次 |
| 最近记录: |