eureka-client源码分析
2021-12-08 09:47:37 5 举报
eureka-client源码分析
作者其他创作
大纲/内容
初始化服务续约任务
任务线程
计算本地实例列表的hashcode
服务端处理参考<eureka服务端jersey接口>流程图获取注册信息接口
InstancelnfoReplicator.start0
getReconcileHashCode(Applications applications)
获取服务:refreshRegistry()
只有InstancelnfoReplicator.start0在进行了内部属性赋值之后才会执行注册方法
reg.getApplicationInfoManager()\t\t\t\t.setInstanceStatus
scheduler.schedule
Applications
如果客户端实例集合的hashcode和服务端的实例集合的hashcode不一致
EurekaAutoServiceRegistrationclient启动时的自动注册bean)
spring-cloud-netflix-eurekaclientjar里的spring.fatories文件里的EnableAutoConfiguration对应EurekaClientAutoConfiguration
run()调用
serviceRegistry.register
增量
getAndUpdateDelta(applications)
存入本地缓存
调用服务端注册http接口
EurekaClientAutoConfiguration
初始化
initScheduledTasks()
@AutoConfigureAfter
DiscoveryClient这个对象是spring cloud对原生EurekaClient的包装类
全量
Marker
通过http调用服务端的增量接口
EurekaDiscoveryClientConfiguration
eurekaTransport.queryClient.getApplications(remoteRegionsRef.get())
定时更新服务注册列表线程
初始化定时任务:获取服务注册信息和服务续约任务
instanceInfoReplicator.onDemandUpdate()
run()
服务注册
EurekaClientConfigBean(初始化eurekaClient相关配詈)
调用
InstanceInfoReplicator是Runnable接口
discoveryClient.register();
合并到本地缓存
激活
reconcileHashCode.equals(delta.getAppsHashCode())
发布服务为UP的状态事件
eurekaTransport.queryClient.getDelta(remoteRegionsRef.get())
statusChangeListener = new ApplicationInfoManager.StatusChangeListener()
监听器监听StatusChangeEvent事件
scheduler.schedule()
服务注册:eurekaTransport.registrationClient.register(instanceInfo)
EurekaClient的初始化
初始化bean
start()
fetchRegistry(boolean forceFullRegistryFetch)
CacheRefreshThread
通过http调用服服务端全全量接口
getAndStoreFullRegistry()
0 条评论
下一页