【发布时间】:2016-05-12 17:52:13
【问题描述】:
我正在测试一个 spring-cloud eureka 服务器和客户端。 我有一个关于默认配置(服务器和客户端)的简单问题。
在服务器端,更新阈值等于 3。 在客户端,它每 30 秒发送一次心跳(每分钟最多 2 次)。
当我查看注册表仪表板时,当waitTimeInMswhenSyncEmpty 结束时,我看到以下警告消息:
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE
当我查看代码时,测试getNumOfRenewsInLastMin() <= numberOfRenewsPerMinThreshold 始终为真(2 <= 3)
为什么是默认配置,看起来怪怪的,因为它不断产生警告!
如果有人可以给我一个解释。我想我错过了什么……
【问题讨论】:
-
我看到
numberOfRenewsPerMinThreshold > 0 && getNumOfRenewsInLastMin() > numberOfRenewsPerMinThreshold。这适用于2 > 3 = false。你在看哪里? github.com/Netflix/eureka/blob/… -
方法 isBelowRenewThresold()(恕我直言,这是正确的)和 FTL 用法 之间可能存在问题。会不会是 FTL 使用了一种方法,该方法返回一个预期为布尔值的数字?
-
对不起,请忽略我最后的回答。它似乎工作正常。我的尤里卡控制台显示更新(4)确实低于阈值(5)。由于我有 2 个客户,更新通常为 4。最大的问题是,为什么阈值大于预期的更新?这似乎也是这个问题的情况
标签: spring-cloud netflix-eureka