Java 了解Eureka客户端缓存
我需要一些帮助来理解为什么在Eureka注册的服务尽管没有实际运行,但仍希望彼此通信。例如,我在Eureka注册了服务A和服务B。如果我关闭服务B,服务A仍将尝试与服务B通信30秒到3分钟,即使它没有运行。这样做的目的是什么?有什么办法吗?谢谢大家! 我相信你指的是尤里卡的自我保护模式 这样做的目的是什么 自我保护模式旨在处理短时网络故障。一旦实例被注册,Eureka服务器将不会永远将实例保留在注册表中。它在实例第一次注册时设置实例的租约续订策略。该策略包括实例在从注册表中退出之前可能错过的心跳次数 自我保护模式在您需要时非常重要 关于自我保护模式的更多细节,你们可以通过这个问题 有什么办法吗 默认情况下,它处于启用状态。它可以被禁用 您还可以调整一些属性,以确保尽快逐出死实例Java 了解Eureka客户端缓存,java,spring-boot,netflix-eureka,Java,Spring Boot,Netflix Eureka,我需要一些帮助来理解为什么在Eureka注册的服务尽管没有实际运行,但仍希望彼此通信。例如,我在Eureka注册了服务A和服务B。如果我关闭服务B,服务A仍将尝试与服务B通信30秒到3分钟,即使它没有运行。这样做的目的是什么?有什么办法吗?谢谢大家! 我相信你指的是尤里卡的自我保护模式 这样做的目的是什么 自我保护模式旨在处理短时网络故障。一旦实例被注册,Eureka服务器将不会永远将实例保留在注册表中。它在实例第一次注册时设置实例的租约续订策略。该策略包括实例在从注册表中退出之前可能错过的心跳
请浏览上面链接的问题,以获取有关调整哪些属性的帮助。正如您所知,Netflix正在运行大量基于Eureka的服务器实例。因此,对于Netflix来说,通过Eureka查找实例的开销可能会很大。我想这就是为什么Eureka具有缓存、轮询间隔和其他特性,导致刷新实例状态的延迟 幸运的是,您可以使用以下属性调整此延迟
- Eureka服务器-
Eureka.Server.responseCacheUpdateInvervalMs
- 30秒。Eureka服务器的API有自己的响应缓存。违约时间相当长。可以减小此值
- Eureka客户端(API调用方)-
Eureka.Client.registryFetchIntervalSeconds
- 30秒。Eureka客户端定期从Eureka服务器获取实例状态。可以减小此值
- Eureka客户端(API提供程序)
Eureka.instance.leaseExpirationDurationInSeconds
- 90秒。每个注册到Eureka服务器的实例都可以为自己设置过期时间。如果Eureka服务器在此期间未收到来自Eureka客户端的任何心跳信号,则该实例将过期。默认情况下,每个Eureka客户端每30秒发送一次心跳信号李>
eureka.instance.leaseRenewalIntervalInSeconds