SpringCloud Eureka的健康檢測機制

2022-06-08 16:33:06 字數 1519 閱讀 1475

# 關閉自我保護機制

enable-self-preservation: false

# 每隔10s掃瞄服務列表,移除失效服務

eviction-interval-timer-in-ms: 10000

預設情況下,如果eureka server在一定時間內(預設90秒)沒有接收到某個微服務例項的心跳,eureka server將會移除該例項。但是當網路分割槽故障發生時,微服務與eureka server之間無法正常通訊,而微服務本身是正常執行的,此時不應該移除這個微服務,所以引入了自我保護機制。

自我保護模式正是一種針對網路異常波動的安全保護措施,使用自我保護模式能使eureka集群更加的健壯、穩定的執行。

自我保護機制的工作機制是如果在15分鐘內超過85%的客戶端節點都沒有正常的心跳,那麼eureka就認為客戶端與註冊中心出現了網路故障,eureka server自動進入自我保護機制,此時會出現以下幾種情況:

1、eureka server不再從註冊列表中移除因為長時間沒收到心跳而應該過期的服務。

2、eureka server仍然能夠接受新服務的註冊和查詢請求,但是不會被同步到其它節點上,保證當前節點依然可用。

3、當網路穩定時,當前eureka server新的註冊資訊會被同步到其它節點中

因此eureka server可以很好的應對因網路故障導致部分節點失聯的情況,而不會像zk那樣如果有一半不可用的情況會導致整個集群不可用而變成癱瘓。

# 該配置可以移除這種自我保護機制,防止失效的服務也被一直訪問 (spring cloud預設該配置是 true)

eureka.server.enable-self-preservation: false

# 該配置可以修改檢查失效服務的時間,每隔10s檢查失效服務,並移除列表 (spring cloud預設該配置是 60s)

eureka.server.eviction-interval-timer-in-ms: 10

eureka:

instance: # 每隔10s傳送一次心跳

lease-renewal-interval-in-seconds: 10

# 告知服務端30秒還未收到心跳的話,就將該服務移除列表

lvs ldirectord 實現健康檢測

rhel6.5 selinux and iptables disabled load balance 172.25.79.1 server1 virtual ip 172.25.79.100 gateway 172.25.79.1 realrerver1 172.25.79.2 server2 re...

Consul入門05 健康檢測

我們已經看到了執行consul,增加節點和服務,以及查詢這些賤點和服務是多麼地簡單。在這篇教程中,我們將繼續增加對節點和服務健康監測的教程。健康監測對服務發現是乙個關鍵的元件,它避免使用不健康的服務。本篇的步驟基於前一篇 consul集群,這裡你應該執行有兩個節點的集群。類似於服務,可以通過乙個 檢...

Consul入門05 健康檢測

我們已經看到了執行consul,增加節點和服務,以及查詢這些賤點和服務是多麼地簡單。在這篇教程中,我們將繼續增加對節點和服務健康監測的教程。健康監測對服務發現是乙個關鍵的元件,它避免使用不健康的服務。本篇的步驟基於前一篇 consul集群,這裡你應該執行有兩個節點的集群。類似於服務,可以通過乙個 檢...