eureka client 拉取注册表(服务发现增量拉取)
2021-09-01 16:22:08 0 举报
登录查看完整内容
eureka client 拉取注册表(服务发现增量拉取)
作者其他创作
大纲/内容
eureka server
否
拿到结果返回
refreshRegistry
web 容器
先从readOnlyCacheMap中获取
apps/delta
30s 执行一次
将获取到的信息缓存到readOnlyCacheMap中去
eureka 获取注册表多级缓存机制
遍历获取的app,然后
如果不是null , 就会处理结果updateDelta
getContainerDifferential(delta)
创建缓存key ,也就是cacheKey,需要注意这里有个ALL_APPS_DELTA,跟全量拉取的有点不一样
调用传输层的getDelta 方法
收到server 的响应
getAndUpdateDelta
获取到全量 注册表的一个hashCode 塞到Applications
判断获取到没有
发送get请求
jerseyClient
获取到后,进行封装Value,然后进行压缩
本地注册表的hashCode 与eureka server 注册表的hashCode 进行比对
从responseCache获取,调用getGZIP方法
判断获取到的结果是不是null ,如果是null的话,就进行一次全量拉取
eureka client 收到响应的处理
ApplicationsResource
eureka client
是
缓存启动的时候,会启动一个定时任务,然后是30s执行一次,然后遍历readOnlyCacheMap中的数据,与readWriteCache中的数据做对比,如果不一样的话,就替换掉readOnlyCacheMap中对应的值
判断获取结果
增量更新hash一致性比对,跟hdfs差不多
如果没有,就调用load的方法,走的ALL_APPS_DELTA
不一致的话
按照变更类型(add, modify,delete),然后处理到本地Applications中
GET请求
进行全量注册表的拉取
遍历最近更改的队列recentlyChangedQueue, 然后封装成Applications
没有获取到的话,就去readWriteCache中获取
eureka client启动的时候,会启动一个定时任务,然后每30秒拉取一次
0 条评论
回复 删除
下一页