Eureka多級快取機制
阿新 • • 發佈:2020-10-10
一、快取儲存格式 ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>>
二、eureka 服務端快取
-
readOnlyCacheHashMap
ConcurrentHashMap,定時從readWriteCacheMap同步資料,預設30s
-
readWriteCacheHahMap
Guava快取,資料主要同步於儲存層。當獲取快取時判斷快取中是否沒有資料,如果不存在此資料,則通過 CacheLoader 的 load 方法去載入,載入成功之後將資料放入快取,同時返回資料。預設180s過期,當服務下線、過期、註冊、狀態變更,都會來清除此快取中的資料。
eureka 客戶端快取
-
eureka Client 啟動時會全量拉取服務列表,啟動後每隔 30 秒從 Eureka Server 量獲取服務列表資訊,並保持在本地快取中。
-
ribbon 如果使用ribbon負載均衡,ribbon也有30s快取
快取工作方式:
優雅停機時預設最長感應時間 30(Ribbon) + 30(client) + 30(readOnlyCacheMap) + 180(readWriteCacheMap) = 270s