SpringCloud - Eureka源码解读

SPI 加载spring.factories

SpringCloud - Eureka源码解读
SpringCloud - Eureka源码解读
重点
SpringCloud - Eureka源码解读
SpringCloud - Eureka源码解读
DiscoveryClient
SpringCloud - Eureka源码解读
三个比较重要的定时器,负责服务注册、续约和服务拉取
SpringCloud - Eureka源码解读
SpringCloud - Eureka源码解读

1、服务拉取
SpringCloud - Eureka源码解读
SpringCloud - Eureka源码解读
refreshRegistry 里面的fetchRegistry 方法
SpringCloud - Eureka源码解读
全量拉取和增量拉取
SpringCloud - Eureka源码解读
SpringCloud - Eureka源码解读
从服务器获取服务列表后换成到localRegionApps 中,后面ribbon、feign、config、zuul 都用
到了这个localRegionApps
getApplications 方法调用,最终会走到这个类用get 请求调用到eureka 服务端
SpringCloud - Eureka源码解读
对应的请求地址:
SpringCloud - Eureka源码解读

2、服务注册和续约
SpringCloud - Eureka源码解读
SpringCloud - Eureka源码解读
SpringCloud - Eureka源码解读
register 方法,服务注册,最终会调用该类 Post 请求到服务端
SpringCloud - Eureka源码解读
服务注册的地址
SpringCloud - Eureka源码解读
服务注册的节点信息
SpringCloud - Eureka源码解读
服务续约中的sendHeartBeat 方法 put请求
SpringCloud - Eureka源码解读
心跳只是把节点状态发送到了服务端
SpringCloud - Eureka源码解读

Eureka 服务端源码

服务端是通过JAX-RS 规范接收客户端的请求的
SpringCloud - Eureka源码解读
SpringCloud - Eureka源码解读
接收服务注册的方法
SpringCloud - Eureka源码解读
SpringCloud - Eureka源码解读
SpringCloud - Eureka源码解读

register 方法
1、把客户端传递过来的节点信息报错到本地服务列表
2、把该eureka 的信息复制到其他eureka 节点上
SpringCloud - Eureka源码解读
SpringCloud - Eureka源码解读
对应的服务端注册信息如下:
Key 是对应的服务名称,value 则是这个服务对应的服务列表信息
SpringCloud - Eureka源码解读
复制eureka 的节点信息到其他节点
所有节点循环
SpringCloud - Eureka源码解读
SpringCloud - Eureka源码解读
接收续约心跳的方法
SpringCloud - Eureka源码解读
SpringCloud - Eureka源码解读