当前位置:   article > 正文

全网最清晰 SpringCloud-Eureka Client流程

eureka client

一般我们Client端会像下图一样,引入Eureka,下面就通过这个来分析Eureka客户端源码流程
在这里插入图片描述

一、客户端自动配置

在这里插入图片描述
在这里插入图片描述

这里import了一个EnableDiscoveryClientImportSelector类,这个类又做了什么?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

就是加载了一些属性

二、SpringBoot 加载EurekaClientAutoConfiguration
SpringBoot会在启动的时候加载 spring-cloud-netflix-eureka-client端下面的META-INF下面的EurekaClientAutoConfiguration
让我们来看看这个类
在这里插入图片描述

三、EurekaClientAutoConfiguration详解
这里为什么要加入EurekaClientAutoConfiguration那?由于spring-cloud-eureka-server也需要进行网络通信,所以会引入Eureka Client包,最终会导致EurekaClientAutoConfiguration的导入
EurekaClientAutoConfiguration这个类通过 @configuration和@bean,引入了很多Eureka Client端源码中常见的组件
3.1 实例信息组件
在这里插入图片描述

3.2 实例管理组件
在这里插入图片描述

3.3 Eureka client实例
在这里插入图片描述

3.4 服务自动注册组件
在这里插入图片描述

3.5 服务注册组件
上面的服务自动注册组件,会调用到下面这个服务注册组件
在这里插入图片描述

四、Client端完整流程(最重要)
上面这些组件都准备好了,server端就要开始启动了,看看入口在哪里,有哪些流程?
4.1 服务注册
一般来说,client启动完成后,会向server端进行服务注册,这一步在那里?其实就是我们上面说的
EurekaAutoServiceRegistration
它的start会完成向服务端注册, 如果想继续追源码的话,它最终调用的是instanceInfoReplicator.onDemandUpdate();

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这里是单线程异步执行的,因为scheduler核心线程数为1,然后submit给它的

  1. 调用discoveryClient.refreshInstanceInfo刷新实例信息
  2. 调用discoveryClient.register进行注册
  3. 调用sheduler.shedule 放一个下一次执行的延迟任务

最终,这里会调用到Server端的 ApplicationResource
在这里插入图片描述
在这里插入图片描述

这里又会调用到 PeerAwareInstanceRegistryImpl这个服务端组件的register方法
在这里插入图片描述

调用父类abstractInstanceRegistry的register完成注册,并且复制给其他node节点
在这里插入图片描述

这里就是eureka 最著名的三层缓存架构的注册表所在之处,我们看一下registry到底存了哪些信息?
在这里插入图片描述

<服务名:map<实例唯一id:InstanceInfo>>, 这就是一个注册中心底层原理

4.2 定时注册
在这里插入图片描述

4.3 服务发现(全量)
client在第一次启动的时候,会从eureka server全量的拉取注册表
入口在:
if (clientConfig.shouldFetchRegistry() && !fetchRegistry(false)) {
fetchRegistryFromBackup();
}
在这里插入图片描述

4.4 服务发现(定时)
!](https://img-blog.csdnimg.cn/direct/b36098ff32e5407e849cfbf296df3e33.png)

4.3 心跳续约
在DiscoveryClient中,会创建定时调度的任务,去完成心跳续约
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/1000147
推荐阅读
相关标签
  

闽ICP备14008679号