Eureka源码分析
1 Eureka Server启动过程

springboot应⽤启动时会加载EurekaServerAutoConfiguration⾃动配置类,

先看头配置,如何注入Marker对象,在启动类中要有EnableEurekaServer注解



接下来关注核心配置类EurekaServerAutoConfifiguration


在 com.netflflix.eureka.cluster.PeerEurekaNodes#start⽅法中,

那么,在什么时间点调用PeerEurekaNodes#start,回到主配置类

注入 DefaultEurekaServerContext上下文对象,

回到主配置类中,

关注头配置EurekaServerInitializerConfiguration


重点关注,进⼊
org.springframework.cloud.netflflix.eureka.server.EurekaServerBootstrap#contextInitialized


关注上图中的syncUp方法

继续关注com.netflflix.eureka.registry.AbstractInstanceRegistry#register(提供实例注册功能)


继续关注com.netflflix.eureka.registry.PeerAwareInstanceRegistryImpl#openForTraffic

2 Eureka Server服务接⼝暴露


扫描EUREKA_PACKAGES指定包

对外提供的接⼝服务,在Jersey中叫做资源

使⽤Jersey发布的供Eureka Client调⽤的Restful⻛格服务接⼝(完成服务注册、⼼跳续约等接口)
3 Eureka Server接收客户端注册请求



AbstractInstanceRegistry#register():注册,实例信息存储到注册表是⼀个ConcurrentHashMap
4 Eureka Server接收客户端心跳请求




renew()⽅法中—>leaseToRenew.renew()—>对最后更新时间戳进⾏更新
5 Eureka Client注册服务


读取配置文件信息

创建EurekaClient实例信息,从server获取服务实例信息












6 Eureka Client下架服务

服务关闭时,会调用EurekaClient的shutdown方法


350

被折叠的 条评论
为什么被折叠?



