2016-02-03 22 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