Eureka的自我保護模式
阿新 • • 發佈:2019-01-04
進入自我保護模式最直觀的體現就是Eureka Server首頁的警告,如下圖:
預設情況下,如果Eureka Server在一定時間內沒有接收到某個微服務例項的心跳,Eureka Server將會登出該例項(預設90秒)。但是當網路分割槽故障發生時,微服務與Eureka Server之間無法正常通訊,這就可能變得非常危險了----因為微服務本身是健康的,此時本不應該登出這個微服務。
Eureka Server通過“自我保護模式”來解決這個問題----當Eureka Server節點在短時間內丟失過多客戶端時(可能發生了網路分割槽故障),那麼這個節點就會進入自我保護模式。一旦進入該模式,Eureka Server就會保護服務登錄檔中的資訊,不再刪除服務登錄檔中的資料(也就是不會登出任何微服務)。當網路故障恢復後,該Eureka Server節點會自動退出自我保護模式。
自我保護模式是一種對網路異常的安全保護措施。使用自我保護模式,而已讓Eureka叢集更加的健壯、穩定。
在Spring Cloud中,可以使用eureka.server.enable-self-preservation=false來禁用自我保護模式,當然也可以使用顯示指定IP地址來解決:
eureka.instance.instance-id: ${spring.cloud.client.ipAddress}:${server.port