1. 程式人生 > >3.1 eureka自我保護

3.1 eureka自我保護

實例 eureka 行為 但是 inf 心跳 進行 src 應對

故障現象:

技術分享圖片

Down:是下線(掉線)的意思.

導致原因:

  一句話:某時刻某一個微服務不可用了,eureka不會立刻清理,依舊會對該微服務的信息進行保存

什麽是自我保護模式?

默認情況下,如果EurekaServer在一定時間內沒有接收到某個微服務實例的心跳,EurekaServer將會註銷該實例(默認90秒)。

但是當網絡分區故障發生時,微服務與EurekaServer之間無法正常通信,以上行為可能變得非常危險了——因為微服務本身其實是健康的,

此時本不應該註銷這個微服務。Eureka通過“自我保護模式”來解決這個問題——當EurekaServer節點在短時間內丟失過多客戶端時(可能

發生了網絡分區故障),那麽這個節點就會進入自我保護模式。一旦進入該模式,EurekaServer就會保護服務註冊表中的信息,不再刪除

服務註冊表中的數據(也就是不會註銷任何微服務)。當網絡故障恢復後,該Eureka Server節點會自動退出自我保護模式。

在自我保護模式中,Eureka Server會保護服務註冊表中的信息,不再註銷任何服務實例。當它收到的心跳數重新恢復到閾值以上時,

該Eureka Server節點就會自動退出自我保護模式。它的設計哲學就是寧可保留錯誤的服務註冊信息,也不盲目註銷任何可能健康的服務實例。

一句話講解:好死不如賴活著

綜上,自我保護模式是一種應對網絡異常的安全保護措施。它的架構哲學是寧可同時保留所有微服務(健康的微服務和不健康的

微服務都會保留),也不盲目註銷任何健康的微服務。使用自我保護模式,可以讓Eureka集群更加的健壯、穩定。


在Spring Cloud中,可以使用eureka.server.enable-self-preservation = false 禁用自我保護模式。一般不要禁用自我保護機制.

3.1 eureka自我保護