溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關(guān)于Spring Cloud Eureka自我保護機制的簡介

發(fā)布時間:2020-08-10 09:51:11 來源:億速云 閱讀:230 作者:小新 欄目:編程語言

小編給大家分享一下關(guān)于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

以上是關(guān)于Spring Cloud Eureka自我保護機制的簡介的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI