2016-02-03 21 views
0

我正在测试spring-cloud尤里卡服务器和客户端。 我有一个关于默认配置的简单问题(服务器&客户端)。更新阈值和更新(最后分钟)

在服务器端,更新阈值等于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)

为什么是默认配置,这似乎很奇怪,因为它不断产生警告!

如果有谁可以给​​我一个解释。我想我错过了一些东西......

+0

我看到'numberOfRenewsPerMinThreshold> 0 && getNumOfRenewsInLastMin()> numberOfRenewsPerMinThreshold'。这可以解决'2> 3 = false'。你在看哪里? https://github.com/Netflix/eureka/blob/a54991b8fe121bc39b2b1257b0c57f19ff0ccd30/eureka-core/src/main/java/com/netflix/eureka/registry/PeerAwareInstanceRegistryImpl.java#L465 – spencergibb

+0

请问方法isBelowRenewThresold之间可能存在问题()(这是正确的恕我直言)和FTL用法<#if isBelowRenewThresold>。难道FTL使用的方法会返回一个数字,其中布尔值是预期的吗? –

+0

对不起,请忽略我最后的回答。它似乎工作正常。我的尤里卡控制台告诉我更新(4)确实低于阈值(5)。由于我有2个客户,更新通常是4.最大的问题是,为什么阈值大于预期更新?在这个问题上,这似乎也是这种情况 –

回答

0

以下是一些细节:

您可以在下面的文件中找到允许显示消息的测试。

https://github.com/spring-cloud/spring-cloud-netflix/blob/master/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/navbar.ftl

的 “isBelowRenewThresold” 的值来自代码如下:

model.put( “isBelowRenewThresold”,registry.isBelowRenewThresold()== 1);

被调用的方法可以在以下文件中找到:

https://github.com/Netflix/eureka/blob/master/eureka-core/src/main/java/com/netflix/eureka/registry/PeerAwareInstanceRegistryImpl.java

谢谢您的帮助。

问候, 斯特凡

1

我有同样的问题,并研究了那么一点点。警告消息的根本原因是更新正好比阈值低1。

它发生在您启动普通的尤里卡服务器并且不注册任何客户端时。在续订阈值时它会得到1。 当你现在注册一个客户端时,来自客户端的2只被添加到已经存在的客户端。因此,更新阈值现在可以达到3,并且比更新可以获得一个客户的更高。等待几分钟(约4分钟),警告就会出现。

我application.yml是:

spring: 
    application: 
    name: service-registry 
server: 
    port: 8761 
eureka: 
    instance: 
    hostname: localhost 
    client: 
    registerWithEureka: false 
    fetchRegistry: false 
    serviceUrl: 
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 

我使用Brixton.RC1。

找到同一主题的两个其他SQ问题:

Understanding Spring Cloud Eureka Server self preservation and renew threshold

Spring Eureka server shows RENEWALS ARE LESSER THAN THE THRESHOLD