eureka client源码分析
2021-10-18 14:48:46 3 举报
eureka client源码分析
作者其他创作
大纲/内容
激活
通过http调用服务端全部实例接口
服务定时续约线程
任务线程
调用
增量拉取
调用服务端注册接口
EurekaClientAutoConfiguration
调用服务器端的服务续约接口
CloudEurekaClient
全量拉取
HeartbeatThread
eurekaTransport.registrationClient.sendHeartBeat
InstanceInfoReplicator
获取服务
getAndStoreFullRegistry()
合并到本地缓存
@AutoConfigureAfter
初始化spring cloud原生的eureka client的包装类
Applications
eurekaTransport.registrationClient.register(this.instanceInfo)
eurekaTransport.queryClient.getDelta((String[])this.remoteRegionsRef.get())
EurekaClientConfigBean
初始化
renew
initScheduledTasks
spring-cloud-netflix-eureka-client.jar中spring.factories文件里的EnableAutoConfiguration对应的EurekaClientAutoConfiguration
EurekaDiscoveryClientConfiguration
Marker
discoveryClient.register()
DiscoveryClient
localRegionApps.set(this.filterAndShuffle(apps))
TimedSupervisorTask
CacheRefreshThread
返回服务器端的delta,delta会带有服务器端所有实例的hashcide
eurekaTransport.queryClient.getApplications((String[])this.remoteRegionsRef.get())
!reconcileHashCode.equals(delta.getAppsHashCode())
初始化bean
getAndUpdateDelta
定时更新服务注册表的线程
instanceInfoReplicator.start
写到本地缓存
fetchRegistry(boolean forceFullRegistryFetch)
初始化定时服务注册任务
scheduler.schedule()
调用服务端获取增量的接口
服务器端所有实例的hashcode和本地所有实例的hashcode不一致
初始化eureka client的配置
继承
refreshRegistry()
updateDelta
计算所有实例的hashcode
getReconcileHashCode(applications)
0 条评论
下一页