客户端原理流程分析
pom引入
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
一、服务注册
1、主要实现类为EurekaAutoServiceRegistration、EurekaServiceRegistry
2、EurekaAutoServiceRegistration实现了SmartLifecycle接口,Spring加载和初始化所有bean会调用其start方法,register过程中setInstanceStatus
3、notify时调用InstanceInfoReplicator.onDemandUpdate(),最终实现逻辑在DiscoveryClient实现http的register过程。
二、心跳逻辑与实例列表获取
1、主要注入类:EurekaClientAutoConfiguration
2、注入CloudEurekaClient类时,会调用其父类 DiscoveryClient 的构造方法
3、DiscoveryClient 会分别初始化heartbeat、cacheRefresh线程池,结尾时调用initScheduledTasks创建定时任务
4、HeartbeatThread心跳任务最终调用 DiscoveryClient.renew方法
5、CacheRefreshThread缓存实例列表任务最终调用DiscoveryClient.fetchRegistry方法,进行全量拉取或者增量拉取
网友评论