本篇內(nèi)容主要講解“怎么理解Spring Cloud Eureka的自我保護機制”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么理解Spring Cloud Eureka的自我保護機制”吧!
專注于為中小企業(yè)提供成都網(wǎng)站制作、網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)??h免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千余家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
關閉自我保護機制(默認是打開的):eureka.server.enable-self-preservation=false
自我保護機制:默認情況下,如果Eureka Server在一定時間內(nèi)沒有接收到某個微服務實例的心跳,Eureka Server將會注銷該實例(默認90秒)。但是當網(wǎng)絡分區(qū)故障發(fā)生時,微服務與Eureka Server之間無法正常通信,以上行為可能變得非常危險了——因為微服務本身其實是健康的,此時本不應該注銷這個微服務。
Eureka通過“自我保護模式”來解決這個問題——當Eureka Server節(jié)點在短時間內(nèi)丟失過多客戶端時(可能發(fā)生了網(wǎng)絡分區(qū)故障),那么這個節(jié)點就會進入自我保護模式。一旦進入該模式,Eureka Server就會保護服務注冊表中的信息,不再刪除服務注冊表中的數(shù)據(jù)(也就是不會注銷任何微服務)。當網(wǎng)絡故障恢復后,該Eureka Server節(jié)點會自動退出自我保護模式。
綜上,自我保護模式是一種應對網(wǎng)絡異常的安全保護措施。它的架構(gòu)哲學是寧可同時保留所有微服務(健康的微服務和不健康的微服務都會保留),也不盲目注銷任何健康的微服務。使用自我保護模式,可以讓Eureka集群更加的健壯、穩(wěn)定。
但是,在我們實際生產(chǎn)中,我們云環(huán)境同一個Region下不會發(fā)生大規(guī)模網(wǎng)絡分區(qū)狀況,所以沒有啟用自我保護。
相關參數(shù):eureka.server.renewalPercentThreshold = 0.85
在每一個服務實例注冊時:
expectedNumberOfRenewsPerMin += 2 numberOfRenewsPerMinThreshold = RenewalPercentThreshold*numberOfRenewsPerMinThreshold
無論你設置心跳時間是多少,expectedNumberOfRenewsPerMin都是+2(默認心跳時間是30s,每分鐘有60s,所以+2,但是沒有根據(jù)真正的心跳時間修改,應該算是個缺陷)
在收到心跳時:
renewsLastMin.increment()
當renewsLastMin
到此,相信大家對“怎么理解Spring Cloud Eureka的自我保護機制”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!