eureka 服务发现(全量拉取注册表)
2021-08-27 19:27:47 0 举报
eureka 服务发现(全量拉取注册表)
作者其他创作
大纲/内容
get请求
先根据cacheKey去readOnlyCacheMap中获取
web 容器
如果readOnlyCacheMap中没有获取到,然后就到 readWriteCache中获取
每30s执行一次
判断有没有
缓存到readWriteCache中
返回结果
调用responseCache的getGZIP方法 根据cacheKey 获取资源
getContainers 方法
调用responseCacheImpl的generatePayload方法获取
eureka client在创建的时候,然后就会全量拉取注册表
jerseyClient
这里这个readWriteCache使用的guava包中的LoadingCache,然后如果180s没有写请求就清除缓存
后台有个定时任务,会每30s然后比对一下readOnlyCacheMap与readWriteCache中的数据,如果某个key获取的value不一样的话就更新readOnlyCacheMap的value
DiscoveryClient
服务发现 多级缓存机制
eureka server 处理获取全量注册表的逻辑
ApplicationsResource
fetchRegistry
调用注册表的applications方法获取所有的application,其实就是遍历注册表,然后封装application对象
get
没有执行load方法,进行加载
有的话,就往readOnlyCacheMap中缓存一份
判断是否获取到
然后再缓存到readOnlyCacheMap中
封装Value ,然后进行压缩工作
否
创建cacheKey
发送get请求
/apps
getAndStoreFullRegistry
0 条评论
回复 删除
下一页