服務正常上線/修改/下線,最大可能會有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會開啟自我保護機制...