Eureka:总逻辑图
2020-11-18 18:35:45 0 举报
Eureka总逻辑图
作者其他创作
大纲/内容
生成
取出
是否为空
计数-2
租约
服务端全量实例表数据Hash值
initScheduledTasks
添加进最近更新队列
启动
删除
旧租约
实例名1
PeerAwareInstanceRegistryImpl/注册表
读写缓存
localRegionApps客户端实例表
全量抓取
主动下线
RecentlyChangedItem1
合并
{appName}
二级缓存
合并后的数据hash值
InstanceInfo/服务实例
numberOfRenewsPerMinThreshold期望的1分钟内心跳接收次数
增量抓取
应用名C
ResponseCache/二级缓存
evictionTimestamp > 0 || System.currentTimeMillis() > (lastUpdateTimestamp + duration + additionalLeaseMs主动下线或已经超过租约时间+duration(90s),即心跳间隔180s才算故障
cacheKey
租约2
客户端
客户端处理增量抓取
不一致,全量拉取
添加
租约.lastUpdateTimestamp = currentTimeMillis() + 90s续约90s
失效
期望的1分钟内心跳接收次数
创建
计算出
RecentlyChangedItem
判断租约是否失效
appName + instanceId
readOnlyCacheMap/只读缓存
RecentlyChangedItem2
心跳续约
renewsLastMin1分钟内心跳接收次数
服务下线
recentlyChangedQueue/最近实例更新队列
租约3
evictionTimestamp = System.currentTimeMillis()设置下线时间
设置
readWriteCacheMap/读写缓存
CacheRefreshThread
不为空
实际注册表
故障下线机制
应用名A
注册
Applications全量服务实例表
比对数据
实例名2
实例名3
租约表B
Lease/租约1
renewsLastMin
ALL_APPS全量数据缓存
Applications + Hash值服务实例 + 服务端全量实例表数据Hash值
Applications服务实例表
新租约
服务器故障保护机制
Eureka总逻辑图
计数+2
空,全量抓取
计数+1
添加或替换进租约表
取出(如果存在的话)
应用名B
最近实例更新队列
抓取
租约表C
random.nextInt(expiredLeases.size() - i随机摘除
RecentlyChangedItem3
ALL_APPS_DELTA增量数据缓存
保存
0 条评论
下一页