Eureka服务端源码分析

eureka服务端源码分析

Eureka服务端源码分析_第1张图片

首先eureka server的主启动类会有一个@EnableEurekaServer注解 ,该注解点进去会有一个通过Import注解导入的配置类EurekaServerMarkerConfiguration,通过类注释可以看出该注解的作用是激活eureka server 相关配置[EurekaServerAutoConfiguration]

Eureka服务端源码分析_第2张图片

该配置类点击进去会发现往spring容器当中注入了一个 Marker的bean

Eureka服务端源码分析_第3张图片

 通过注释可以看出它激活了EurekaServerAutoConfiguration,了解过springboot的都知道,它会在容器启动的时候把一些XXXAutoConfiguration加到容器当中。但是不一定启用

Eureka服务端源码分析_第4张图片

查看EurekaServerAutoConfiguration类,发现该类启用的条件是容器当中加了Marker 的bean该类才会生效。

Eureka服务端源码分析_第5张图片

正是这个Marker的bean激活了EurekaServer的配置类

Eureka服务端源码分析_第6张图片

 通过查看,在EurekaServerAutoConfiguration类中发现EurekaServerConfig bean初始化了eurekaServer的相关默认配置

 在EurekaServerAutoConfiguration类中发现eurekaController bean初始化了一些接口用于获取eurekaServer的信息

Eureka服务端源码分析_第7张图片

 在EurekaServerAutoConfiguration类中发现peerAwareInstanceRegistry初始化了集群注册表

Eureka服务端源码分析_第8张图片

 在EurekaServerAutoConfiguration类中发现peerEurekaNodes初始化了集群节点集合

Eureka服务端源码分析_第9张图片

基于eureka server配置,注册表,集群节点集合,以及服务实例初始化eurekaServer上下文

Eureka服务端源码分析_第10张图片

 初始化springcloud包装的eureka原生启动类

Eureka服务端源码分析_第11张图片

 初始化Jersey 过滤器

到此,EurekaServerAutoConfiguration类初始化工作结束

Eureka服务端源码分析_第12张图片

 在eureka自动配置类上方通过 import 导入了一个EurekaServerInitializerConfiguration配置类

该类实现了SmartLifecycle接口,实现了SmartLifecycle接口的类会在初始完成后根据isAutoStartup()的返回值确认是否调用start()方法

Eureka服务端源码分析_第13张图片

通过查看start()方法,发现这里初始化了 eureka server       [ log ]

Eureka服务端源码分析_第14张图片

 跟到contextInitialized方法,发现在这里初始化了eureka的运行环境和eurekaServer的上下文

Eureka服务端源码分析_第15张图片

 跟到initEurekaServerContext方法,registry.syncUp,从相邻的eureka节点复制注册表,调用相邻节点的http接口获取所有服务实例       服务同步

Eureka服务端源码分析_第16张图片

把所有实例注册到本地

 Eureka服务端源码分析_第17张图片

修改eureka状态为UP   ,开启一个定时任务,清理60s没有续约的任务  服务剔除

Eureka服务端源码分析_第18张图片

 开启定时剔除服务的任务    delay:60s   服务启动后60s执行,执行周期:60s

你可能感兴趣的:(#,Eureka,eureka)