我目前正面临一个问题,即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分钟以上时清除服务注册表?
我们有一个Spring-Boot应用程序,我们使用Eureka来发现Spring Cloud Config并检索配置.我们正在整合Vault以注入安全/敏感信息,并且在加载和解析参数方面遇到了问题.我们作为Vault客户端使用的项目是vault-spring-boot-starter,只要我们不通过eureka与config-server一起使用它就可以很好地工作.
具体而言,Eureka访问URL包含从Vault检索的参数/凭据.启用所有组件后,当DiscoveryClient尝试访问尚未填充/替换参数的URL时,Eureka请求将失败.
( Example: http://${user}:${pass}..... )
试图指定@Order和
@AutoConfigureBefore({EurekaClientAutoConfiguration.class, DiscoveryClientConfigServiceAutoConfiguration.class})
在Vault-spring-boot-starter的VaultBootstrapConfiguration中似乎没有任何影响.我认为这个问题与处理PropertySources的顺序有关,但是我无法在Eureka之前成功注入Vault的PropertySource.在DiscoveryClient和配置服务器访问之前,我们如何指示自定义/ Vault PropertySourceLocator逻辑执行?
更新
我们使用的是spring-cloud版本Angel.SR6.
我按照建议将@Order(Ordered.HIGHEST_PRECEDENCE)注释添加到VaultPropertySourceLocator,但参数解析仍然不起作用.启用Spring调试日志记录后,我认为Vault PropertySource实际上存在,但由于某种原因未被使用.我修改了代码,以便VaultConfiguration实现SmartLifecycle和Ordered(order = 0和phase = Integer.MIN_VALUE),这可能会影响事情.我将不得不做更多的调试,试图找出正在发生的事情.