Spring Cloud Eureka自我保護機制

2021-09-12 01:30:52 字數 720 閱讀 9957

eureka的自我保護機制:

首先來說下cap理論,關於分布式的架構都會涉及到cap理論,eureka用的ap設計,即高可用以及分割槽容錯性

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

1、沒有心跳也就是當某時刻某乙個微服務不可用,eureka仍然不會清理這個服務,仍然會保留,對該微服務資訊進行儲存,寧願保留錯誤的微服務資訊,也不願登出可能會存活的微服務例項。

2、當某乙個微服務死掉了或者不可用了,eureka有乙個時間,預設90秒,90秒如果還沒恢復,eureka將其登出

3、當節點(微服務)恢復的時候,再自動退出自我保護機制,同步到其他節點上

eureka自我保護主要應對網路異常的一種安全保護措施,保留可用與不可用,不盲目登出,使用自我保護機制,可以讓eureka集群更加健壯、穩定,也就是上面提到的ap。這也是和zookeeper的區別,不會像zookeeper那樣如果有一半不可用的情況會導致整個集群不可用而變成癱瘓。

在spring cloud中,可以在eureka服務中心使用eureka.server.enable-self-preservation = false 禁用自我保護模式。在沒有特定的業務場景下,但建議保留預設的

SpringCloud Eureka自我保護機制

首先對eureka註冊中心需要了解的是eureka各個節點都是平等的,沒有zk中角色的概念,即使n 1個節點掛掉也不會影響其他節點的正常執行。預設情況下,如果eureka server在一定時間內 預設90秒 沒有接收到某個微服務例項的心跳,eureka server將會移除該例項。但是當網路分割槽...

Eureka自我保護

為什麼會產生 eureka自我保護機制?為了防止以下情況 eurekaclienti可以正常執行,但是與 eurekaserver網路不通情況下,eurekaserver立刻將 eurekaclient服務剔除。如果進入了自我保護模式就不會立刻刪除服務。什麼是自我保護模式?這裡只修改7001和800...

Eureka自我保護

什麼是自我保護模式?預設情況下,如果eurekaserver在一定時間內沒有接收到某個微服務例項的心跳,eurekaserver將會登出該例項 預設90秒 但是當網路分割槽故障發生時,微服務與eurekaserver之間無法正常通訊,以上行為可能變得非常危險了 因為微服務本身其實是健康的,此時本不應...