springcloud服務已經關但是Eureka還是顯示up

該狀態持續很久,訪問該服務也返回錯誤,但在註冊中心界面,該服務卻一直存在,且爲UP狀態,並且在大約十分鐘後,出現一行紅色大字: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.


原因:自我保護機制。Eureka Server在運行期間,會統計心跳失敗的比例在15分鐘之內是否低於85%,如果出現低於的情況(在單機調試的時候很容易滿足,實際在生產環境上通常是由於網絡不穩定導致),Eureka Server會將當前的實例註冊信息保護起來,同時提示這個警告。



解決方法:

添加如下配置,關閉自我保護

Eureka server application.yml

eureka:  
  server:  
    enableSelfPreservation: false


Service application.yml

eureka:  
  instance:  
    leaseRenewalIntervalInSeconds: 1  
    leaseExpirationDurationInSeconds: 2


本文轉載自:

http://blog.csdn.net/qq_32971807/article/details/53945506


配置後的效果是在服務停止後,實例的instance記錄也會消失,如果想要記錄不消失,只修改狀態,目前還沒有研究,後面試驗後會繼續更新本文。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章