淺談Spring Cloud Eureka 自我保護機制
自我保護背景
首先對Eureka注冊中心需要了解的是Eureka各個節(jié)點都是平等的,沒有ZK中角色的概念, 即使N-1個節(jié)點掛掉也不會影響其他節(jié)點的正常運行。
默認情況下,如果Eureka Server在一定時間內(nèi)(默認90秒)沒有接收到某個微服務實例的心跳,Eureka Server將會移除該實例。但是當網(wǎng)絡(luò)分區(qū)故障發(fā)生時,微服務與Eureka Server之間無法正常通信,而微服務本身是正常運行的,此時不應該移除這個微服務,所以引入了自我保護機制。
自我保護機制
官方對于自我保護機制的定義:https://github.com/Netflix/eureka/wiki/Understanding-Eureka-Peer-to-Peer-Communication
自我保護模式正是一種針對網(wǎng)絡(luò)異常波動的安全保護措施,使用自我保護模式能使Eureka集群更加的健壯、穩(wěn)定的運行。
自我保護機制的工作機制是如果在15分鐘內(nèi)超過85%的客戶端節(jié)點都沒有正常的心跳,那么Eureka就認為客戶端與注冊中心出現(xiàn)了網(wǎng)絡(luò)故障,Eureka Server自動進入自我保護機制,此時會出現(xiàn)以下幾種情況:
1、Eureka Server不再從注冊列表中移除因為長時間沒收到心跳而應該過期的服務。\
2、Eureka Server仍然能夠接受新服務的注冊和查詢請求,但是不會被同步到其它節(jié)點上,保證當前節(jié)點依然可用。\
3、當網(wǎng)絡(luò)穩(wěn)定時,當前Eureka Server新的注冊信息會被同步到其它節(jié)點中。
因此Eureka Server可以很好的應對因網(wǎng)絡(luò)故障導致部分節(jié)點失聯(lián)的情況,而不會像ZK那樣如果有一半不可用的情況會導致整個集群不可用而變成癱瘓。
自我保護開關(guān)
Eureka自我保護機制,通過配置eureka.server.enable-self-preservation來true打開/false禁用自我保護機制,默認打開狀態(tài),建議生產(chǎn)環(huán)境打開此配置。
開發(fā)環(huán)境配置
開發(fā)環(huán)境中如果要實現(xiàn)服務失效能自動移除,只需要修改以下配置。
1、 注冊中心關(guān)閉自我保護機制,修改檢查失效服務的時間。
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
以上配置建議在生產(chǎn)環(huán)境使用默認的時間配置。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- 細說Springcloud eureka的幾種主動下線服務的方式
- spring cloud eureka微服務之間的調(diào)用詳解
- 詳解SpringCloud eureka服務狀態(tài)監(jiān)聽
- Spring Cloud中Eureka開啟密碼認證的實例
- Spring cloud Eureka注冊中心搭建的方法
- SpringCloud之服務注冊與發(fā)現(xiàn)Spring Cloud Eureka實例代碼
- 詳解Spring Cloud Eureka多網(wǎng)卡配置總結(jié)
- Spring Cloud構(gòu)建Eureka應用的方法
- Spring Cloud EureKa Ribbon 服務注冊發(fā)現(xiàn)與調(diào)用
- 單臺Spring Cloud Eureka升級到三臺Eureka高可用集群
相關(guān)文章
java 從int數(shù)組中獲取最大數(shù)的方法
這篇文章主要介紹了java 從int數(shù)組中獲取最大數(shù)的方法,需要的朋友可以參考下2017-02-02IDEA關(guān)于.properties資源文件的編碼調(diào)整問題
這篇文章主要介紹了IDEA關(guān)于.properties資源文件的編碼調(diào)整問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06Springboot整合zookeeper實現(xiàn)對節(jié)點的創(chuàng)建、監(jiān)聽與判斷的案例詳解
這篇文章主要介紹了基于Springboot整合zookeeper實現(xiàn)對節(jié)點的創(chuàng)建、監(jiān)聽與判斷,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06關(guān)于@RequestParam的使用所遇到的404問題
這篇文章主要介紹了關(guān)于@RequestParam的使用所遇到的404問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08mybatis-plus QueryWrapper and or 連用并且實現(xiàn)分
這篇文章主要介紹了mybatis-plus QueryWrapper and or 連用并且實現(xiàn)分頁,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01