- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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/
我是一名优秀的程序员,十分优秀!