1. 程式人生 > 實用技巧 >Eureka多級快取機制

Eureka多級快取機制

一、快取儲存格式 ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>>

eureka快取儲存格式

二、eureka 服務端快取

  1. readOnlyCacheHashMap

    ConcurrentHashMap,定時從readWriteCacheMap同步資料,預設30s

  2. readWriteCacheHahMap

    Guava快取,資料主要同步於儲存層。當獲取快取時判斷快取中是否沒有資料,如果不存在此資料,則通過 CacheLoader 的 load 方法去載入,載入成功之後將資料放入快取,同時返回資料。預設180s過期,當服務下線、過期、註冊、狀態變更,都會來清除此快取中的資料。

eureka 客戶端快取

  1. eureka Client 啟動時會全量拉取服務列表,啟動後每隔 30 秒從 Eureka Server 量獲取服務列表資訊,並保持在本地快取中。

  2. ribbon 如果使用ribbon負載均衡,ribbon也有30s快取

快取工作方式:

多級快取工作狀態

優雅停機時預設最長感應時間 30(Ribbon) + 30(client) + 30(readOnlyCacheMap) + 180(readWriteCacheMap) = 270s