当前位置: 首页 > 知识库问答 >
问题:

尤里卡的自保模式永不恢复

周麒
2023-03-14

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

我希望这一门槛能不断调整,一段时间后,尤里卡的门槛将达到一个新的规范水平,自我保护模式将被重新设置。我们在镜像设置中使用尤里卡,我们的配置不是很复杂。

Eureka via spring-boot-starter-parent1.2.5.发行版

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分钟以上时清除服务注册中心

共有1个答案

云和惬
2023-03-14

如果只有几个服务实例,每次其中任何一个失败,自保存就会启动,因为默认情况下RenewalPercentThreshold0.85

因此,如果只有84%的实例更新了租约,尤里卡“开启”自我保护。

这意味着如果你有3个实例,其中一个失败,只有66%的人更新了他们的许可证,所以没有人会被取消注册。您可以在服务器属性中优化RenewalPercentThreshold,以适应您的部署。

eureka:
  server:
    renewalPercentThreshold: 0.49

有了这个,如果你有2个实例,1个失败,你仍然是好的。

 类似资料:
  • 我正在尝试使用Spring和Spring Boot学习微服务,并学习部署到云平台。我计划创建一个Angular 2前端应用程序,它与我部署的微服务进行通信。现在,我正在浏览Spring cloud services Eureka、Zuul、Recural breakers等。 null

  • 我正在尝试向尤里卡服务器注册我的微服务。但它显示浏览器中没有可用的实例。我在控制台中没有收到任何错误。请帮助我解决这个问题。 我已经通过在谷歌上搜索尝试了多个选项。不过,我无法解决此问题。 微服务应用程序.属性 客户端主类 Eureka服务器application.properties 尤里卡服务器主类。

  • 我创建了一个具有“Spring-Cloud-Starter-Netflix-Eureka-Server”依赖项的新Spring Boot项目。还添加了“@enableeurekaserver”注释并启动了spring boot应用程序。 我看到下面的日志消息 上面,我指定了Eureka服务器的位置。但是,为什么客户端无法注册呢? 谢谢!

  • 嗨,当一个新的实例/服务使用Spring cloud API注册到eureka时,我试图调用一个自定义方法。是否有任何处理程序/拦截程序可用于执行此操作?在完成注册后,它应该调用自定义方法,这里我试图将一个事件发布到队列中。

  • 我试图通过Spring.io上的教程链接来设置Spring Cloud Eureka。本教程使用的是Spring Boot 1.5.9.RELEASE。但是http://mvnrepository.com/.上没有Spring Cloud Starter Eureka的版本,所以我尝试了1.4.0和2.0.0.M2。我得到了 我做错了什么? 我使用Gradle作为构建工具。

  • 我在Spring cloud文档中读到了用于微服务的Spring Eureka。另外,read Eureka服务器将从注册了Eureks服务器的客户机接收心跳。但是我不明白,为什么我们有这个。客户机以每一个固定的间隔发送心跳,那么healthcheck有什么用?是服务的自定义healthcheck吗?