SpringCloud Eureka自我保護機制
自我保護背景
首先對Eureka註冊中心需要了解的是Eureka各個節點都是平等的,沒有ZK中角色的概念, 即使N-1個節點掛掉也不會影響其他節點的正常執行。
預設情況下,如果Eureka Server在一定時間內(預設90秒)沒有接收到某個微服務例項的心跳,Eureka Server將會移除該例項。但是當網路分割槽故障發生時,微服務與Eureka Server之間無法正常通訊,而微服務本身是正常執行的,此時不應該移除這個微服務,所以引入了自我保護機制。
自我保護機制
官方對於自我保護機制的定義:
https://github.com/Netflix/eureka/wiki/Understanding-Eureka-Peer-to-Peer-Communication
自我保護模式正是一種針對網路異常波動的安全保護措施,使用自我保護模式能使Eureka叢集更加的健壯、穩定的執行。
自我保護機制的工作機制是如果在15分鐘內超過85%的客戶端節點都沒有正常的心跳,那麼Eureka就認為客戶端與註冊中心出現了網路故障,Eureka Server自動進入自我保護機制,此時會出現以下幾種情況:
1、Eureka Server不再從註冊列表中移除因為長時間沒收到心跳而應該過期的服務。
2、Eureka Server仍然能夠接受新服務的註冊和查詢請求,但是不會被同步到其它節點上,保證當前節點依然可用。
3、當網路穩定時,當前Eureka Server新的註冊資訊會被同步到其它節點中。
因此Eureka Server可以很好的應對因網路故障導致部分節點失聯的情況,而不會像ZK那樣如果有一半不可用的情況會導致整個叢集不可用而變成癱瘓。
自我保護開關
Eureka自我保護機制,通過配置 eureka.server.enable-self-preservation
來true開啟/false禁用自我保護機制,預設開啟狀態,建議生產環境開啟此配置。
開發環境配置
開發環境中如果要實現服務失效能自動移除,只需要修改以下配置。
1、 註冊中心關閉自我保護機制,修改檢查失效服務的時間。
eureka: server: enable-self-preservation: false eviction-interval-timer-in-ms: 3000
2、 微服務修改減短服務心跳的時間。
# 預設90秒 lease-expiration-duration-in-seconds: 10 # 預設30秒 lease-renewal-interval-in-seconds: 3
以上配置建議在生產環境使用預設的時間配置。
相關文章
- Spring Cloud系列教程第九篇-Eureka自我保護機制SpringCloud
- Spring Cloud Eureka原始碼分析之心跳續約及自我保護機制SpringCloud原始碼
- 《springcloud 四》服務保護機制SpringGCCloud
- springcloud eureka原理和機制SpringGCCloud
- spring cloud微服務架構-Eureka保護機制SpringCloud微服務架構
- Spring Cloud Eureka原理分析(二):續租、下線、自我保護機制和自動清理(服務端)SpringCloud服務端
- 註冊中心 Eureka 原始碼解析 —— 應用例項註冊發現 (四)之自我保護機制原始碼
- 保護模式:段機制模式
- Linux中的保護機制Linux
- SpringCloud之EurekaSpringGCCloud
- SpringCloud (一) EurekaSpringGCCloud
- 從驗證到不變性保護機制
- 執行時應用自我保護(RASP):應用安全的自我修養
- Linux核心記憶體保護機制:aslr和canaryLinux記憶體
- SpringCloud Alibaba實戰(9:Hystrix容錯保護)SpringGCCloud
- SpringCloud(一)——Eureka架構SpringGCCloud架構
- springcloud使用eureka叢集SpringGCCloud
- CWE 4.3:強化你的資料自我保護能力
- SpringCloud系列之服務容錯保護Netflix HystrixSpringGCCloud
- 技術淺析:前端沙箱資料安全保護的機制前端
- 微服務之springcloud eureka(一)微服務SpringGCCloud
- springcloud(二):註冊中心EurekaSpringGCCloud
- SpringCloud如何配置Eureka授權SpringGCCloud
- SpringCloud(1)-Eureka相關配置SpringGCCloud
- springcloud 微服務 之 Eureka 配置SpringGCCloud微服務
- SpringCloud-Eureka叢集搭建SpringGCCloud
- (8)SpringCloud-Spring Cloud EurekaSpringGCCloud
- springcloud學習(一)之EurekaSpringGCCloud
- 老司機翻車現場 續:技術之外,程式設計師如何自我保護程式設計師
- [原創]利用SEH異常處理機制繞過GS保護
- 轉載 利用SEH異常處理機制繞過GS保護
- 【SpringCloud】微服務Eureka高可用配置SpringGCCloud微服務
- 逆向被虛擬機器所保護的二進位制檔案虛擬機
- 研究人員發現macOS隱私保護重大漏洞 攻擊者可繞過蘋果隱私保護核心機制Mac蘋果
- SpringCloud使用Prometheus監控(基於Eureka)SpringGCCloudPrometheus
- SpringCloud基礎教程(三)-Eureka進階SpringGCCloud
- SpringCloud入門(三)Eureka 註冊中心SpringGCCloud
- SpringCloud包含的微服務介紹--EurekaSpringGCCloud微服務