SpringCloud - Eureka源码解读
SPI 加载spring.factories
重点
DiscoveryClient
三个比较重要的定时器,负责服务注册、续约和服务拉取
1、服务拉取
refreshRegistry 里面的fetchRegistry 方法
全量拉取和增量拉取
从服务器获取服务列表后换成到localRegionApps 中,后面ribbon、feign、config、zuul 都用
到了这个localRegionApps
getApplications 方法调用,最终会走到这个类用get 请求调用到eureka 服务端
对应的请求地址:
2、服务注册和续约
register 方法,服务注册,最终会调用该类 Post 请求到服务端
服务注册的地址
服务注册的节点信息
服务续约中的sendHeartBeat 方法 put请求
心跳只是把节点状态发送到了服务端
Eureka 服务端源码
服务端是通过JAX-RS 规范接收客户端的请求的
接收服务注册的方法
register 方法
1、把客户端传递过来的节点信息报错到本地服务列表
2、把该eureka 的信息复制到其他eureka 节点上
对应的服务端注册信息如下:
Key 是对应的服务名称,value 则是这个服务对应的服务列表信息
复制eureka 的节点信息到其他节点
所有节点循环
接收续约心跳的方法