Eureka多级缓存机制
eureka 服务端缓存
- readOnlyCacheMap
ConcurrentHashMap,定时从readWriteCacheMap同步数据,默认30s
- readWriteCacheMap
Guava缓存,数据主要同步于存储层。当获取缓存时判断缓存中是否没有数据,如果不存在此数据,则通过 CacheLoader 的 load 方法去加载,加载成功之后将数据放入缓存,同时返回数据。默认180s过期,当服务下线、过期、注册、状态变更,都会来清除此缓存中的数据。
eureka 客户端缓存
- eureka Client 启动时会全量拉取服务列表,启动后每隔 30 秒从 Eureka Server 量获取服务列表信息,并保持在本地缓存中。
- ribbon 如果使用ribbon负载均衡,ribbon也有30s缓存
缓存工作方式:
最长感应时间 30(Ribbon) + 30(client) + 30(readOnlyCacheMap) + 180(readWriteCacheMap) = 270s
。。。。。。。。。。。。。。待续