Eureka快取機制梳理

2021-08-22 08:24:35 字數 1001 閱讀 4926

服務正常上線/修改/下線,最大可能會有120s滯後30

(首次註冊 init registe) +

30(readonlycachemap)+

30(client fetch interval)+

30(ribbon)=

120s

如果是在

spring

cloud

環境下使用這些元件(

eureka

, ribbon

),不會有首次註冊

30秒延遲的問題,服務啟動後會馬上註冊,所以從註冊到發現,最多可能是

90s

服務異常下線:最大可能會有270s滯後

定時清理任務每eureka.server. evictionintervaltimerinms(預設

60)執行一次清理任務- 每次清理任務會把

90秒(

3個心跳週期,eureka.instance.leaseexpirationdurationinseconds)沒收到心跳的踢除,但是根據官方的說法 ,因為**實現的bug,這個時間其實是兩倍,即

180秒,也就是說如果乙個客戶端因為網路問題或者主機問題異常下線,可能會在

180秒後才剔除- 讀取端,因為readonlycachemap以及客戶端快取的存在,可能會在

30(readonlycachemap)+

30(client fetch interval)+

30(ribbon)=

90- 所以極端情況最終可能會是

180+90=

270s

eureka使用的快取機制如下圖:

Eureka 心跳機制

server服務端 server port 8761 eureka client 例項是否在eureka伺服器上註冊自己的資訊以提供其他服務發現,預設為true register with eureka false 此客戶端是否獲取eureka伺服器登錄檔上的註冊資訊,預設為true fetch r...

Eureka 服務治理機制?

服務的註冊中心 提供了服務的註冊和發現功能。服務提供者 提供服務的應用,供其他服務進行呼叫。服務消費者 從服務註冊中心根據服務名獲取服務列表。下面我們對著三個元素進行細講其原理。如下圖所示 eureka服務治理流程 服務的提供者保護三個部分,服務的註冊,服務的同步,服務的續約 服務的註冊 服務的同步...

Eureka自我保護機制

概念 預設情況下,eurekaclient會定時向eurekaserver端傳送心跳,如果eurekaserver在一定時間內沒有收到eurekaclient傳送的心跳,便會把該例項從註冊服務列表中剔除 預設是90秒 但是在短時間內丟失大量的例項心跳,這時候eurekaserver會開啟自我保護機制...