Eureka服务注册列表拉取
2021-11-04 18:55:57 4 举报
Eureka服务注册列表拉取
作者其他创作
大纲/内容
服务下线
计算本地缓存的hashcode
构建Key(All_APPS)
不一样说明客户端和服务端的注册列表不一致,需全量获取一次
本地缓存AtomicReference<Applications> localRegionApps
增量
获取到的注册列表合并到本地缓存列表
服务剔除
ApplicationsResource.getContainerDifferential()
禁用增量强制全量本地缓存为空走全量
加入变更队列
只有增量有下面的逻辑
Eureka Client
每隔30s移除过期的实例(超过180s没有收到续约的实例)
Eureka Server
最近变更记录队列recentlyChangedQueue
否
30s执行一次
读写缓存readWriteCacheMap
读写缓存没读取到
全量
判断全量还是增量
与服务端的hashcode比对是否一样
注册表registry
每隔30s更新到只读缓存
失效缓存
定时抓取注册列表任务CacheRefreshThread
构建Key(All_APPS_DELTA)
计算全部应用实例的hashcode
DiscoveryClient构造方法
只读缓存没有则读取读写缓存
服务注册
getAndStoreFullRegistry()
只读缓存readOnlyCacheMap
实例180s过期
ApplicationsResource.getContainers()
EurekaClient启动
DiscoveryClient.fetchRegistry
getAndUpdateDelta(applications)
0 条评论
回复 删除
下一页