gpt4 book ai didi

java - Eureka 租约续约如何进行?

转载 作者:行者123 更新时间:2023-11-30 02:22:57 25 4
gpt4 key购买 nike

我有一个 Eureka 服务器和一个 Eureka 客户端。在客户端的bootstrap.properties中,我有以下配置:

eureka.instance.leaseRenewalIntervalInSeconds=240
eureka.instance.leaseExpirationDurationInSeconds=240

我的理解是客户端每240秒就会向服务器发送一次心跳。如果240秒内没有收到心跳,则会再等待240秒。如果仍未收到心跳,则注销客户端。

但是,我观察到,当我手动停止客户端时,Eureka 仪表板立即显示客户端已关闭,而无需等待 240 秒。我希望在仪表板识别出客户端已关闭之前至少延迟 240 秒。有人可以解释为什么会发生这种情况以及我怎样才能得到我提到的行为?

最佳答案

发现客户端(Eureka 客户端)在关闭期间从 Eureka 服务器取消注册。这就是为什么您的实例在关闭时会立即从 Eureka 服务器的仪表板中消失。

不幸的是,据我所知,没有属性可以禁用此行为。

但是您应该记住,Eureka 服务器的仪表板显示已注册实例的当前状态。但是Eureka服务器的API有自己的响应缓存。这意味着,即使您的仪表板不显示您已关闭的实例,API 的响应也可能包含您在缓存期间已关闭的实例信息。

您可以使用以下属性调整此服务器缓存周期。默认值为 30 秒。

eureka.server.responseCacheUpdateInvervalMs

PS1) 改变eureka.instance.leaseRenewalIntervalInSeconds值有一些副作用。一些 Eureka 服务器代码假设它是 30 秒。如果更改此属性, self 保护模式可能无法正常工作。

PS2) Eureka 客户端也有自己的缓存。因此,Eureka 客户端也需要一些时间才能识别出您的实例消失了。

关于java - Eureka 租约续约如何进行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46344005/

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