全网最清晰 SpringCloud-Eureka Server流程

一般我们Server端会像下图一样,引入Eureka,下面就通过这个来分析Eureka服务端源码流程

在这里插入图片描述

一、服务端自动配置

@EnableEurekaServer会引入EurekaServerMarkerConfiguration类

EurekaSeverMarkerConfiguration最终会引入Marker对象,这就是一个标记对象

在这里插入图片描述

二、SpringBoot 加载EurekaServerAutoConfiguration

SpringBoot会在启动的时候加载 spring-cloud-netflix-eureka-server端下面的META-INF下面的EurekaServerAutoConfiguration

让我们来看看这个类

在这里插入图片描述

在@ConditionalOnBean这里我们就会发现当时加的Marker多有用了

三、EurekaServerAutoConfiguration和EurekaClientAutoConfiguration详解

这里为什么要加入EurekaClientAutoConfiguration那?由于spring-cloud-eureka-server也需要进行网络通信,所以会引入Eureka Client包,最终会导致EurekaClientAutoConfiguration的导入

EurekaClientAutoConfiguration这个类通过 @configuration和@bean,引入了很多Eureka Client端源码中常见的组件

3.1 实例管理组件

在这里插入图片描述

ApplicationInfoManager 实例管理器, Eureka-server会依赖Eureka-client,Eureka client又会导入EurekaClientAutoConfiguration,这个类会导入实例管理器

在这里插入图片描述

里面的实例信息为:

在这里插入图片描述

3.2 Eureka client实例

Eureka Server在运行的时候,也需要eureka client,因为它也需要向其他server进行网络通信

在这里插入图片描述

3.3 Client端 服务注册组件

在这里插入图片描述

EurekaServerAutoConfiguration这个类通过 @configuration和@bean,引入了很多Eureka Server端源码中常见的组件

3.3 Server端 服务发现、注册组件

在这里插入图片描述

完成后续的服务端启动的时候,从相邻节点拉取全量的注册表信息

3.4 Server集群节点管理组件

在这里插入图片描述

集群节点配置信息,当server端新增节点的时候,都是要向相邻节点注册上去的

3.5 Eureka Server上下文

在这里插入图片描述

3.6 Eureka Server BootStrap组件

在这里插入图片描述

3.7 Server端 接收请求组件,类似于springmvc的 controller

在这里插入图片描述

3.8 Eureka Server初始化组件

在这里插入图片描述

四、Server端完整流程(最重要)

上面这些组件都准备好了,server端就要开始启动了,看看入口在哪里,有哪些流程?

4.1 Server服务注册

一般来说,server启动完成后,会向其他server端进行服务注册,这一步在那里?其实就是我们上面说的

EurekaAutoServiceRegistration

在这里插入图片描述

它的start会完成向服务端注册, 如果想继续追源码的话,它最终调用的是instanceInfoReplicator.onDemandUpdate();

在这里插入图片描述

在这里插入图片描述

4.2 Server定时注册

在这里插入图片描述

4.2 Server服务发现

Server端的服务发现和Client端的服务发现是不一样的,Server端的服务发现是要从相邻的server节点拉取注册表

上面不是引入一个EurekaServerInitializerConfiguration

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这里非常重要,通过调用PeerAwareInstanceRegistry的syncUp来同步相邻节点的注册表信息

4.3 心跳续约

在DiscoveryClient中,会创建定时调度的任务,去完成心跳续约

在这里插入图片描述

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/718b33c555.html