简单梳理下eureka注册中心代码

本文优点:按着步骤操作可以串起来

注册中心分两部分,eureka-server和eureka-client

一.概述:

1.eureka-server:主要维护了eureka-client的服务地址信息,用的双层map,然后其实就是提供了对这个map的增删查改接口,如:注册(添加),获取服务(查询),续约(更新过期时间),剔除(删除),同步(初始全量获取,新注册剔除会同步),并加了两级缓存,同步和剔除起了两个任务

2.eureka-client:主要就是服务注册,获取任务(全量,增量),续约任务

二.eureka-server代码梳理

1.找到eureka-server的pom依赖

<dependencies>
    <!--Eureka 服务注册中心 start-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
    <!--Eureka 服务注册中心 end-->
</dependencies>

2.点击spring-cloud-starter-netflix-eureka-server,找到如下依赖

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-netflix-eureka-server</artifactId>
</dependency>

3.搜索spring-cloud-netflix-eureka-server,并点进去

4.找到包下的spring.factories,找到EnableAutoConfiguration下的EurekaServerAutoConfiguration,并点击进去,这个类是eureka-server的自动装载类,下边分析这个类怎么被加载的

PS:需要了解点spring boot自动装载知识

5.找到spring boot启动类,点击@SpringBootApplication注解

6.找到@EnableAutoConfiguration注解,并点击

7.找到如下@Import({AutoConfigurationImportSelector.class}),点击类

8.AutoConfigurationImportSelector类实现了ImportSelector接口,这个接口就是手动注入bean的接口

PS:这里需要了解spring前置知识

下边的图1是AutoConfigurationImportSelector类图

 

点击红框方法进去,这里扫描了META-INF下的spring.factories,这里便扫描了步骤4的内容

selectImport方法是在refresh的invokeBeanFactoryPostProcessors中调用的,如下:

9.进入EurekaServerAutoConfiguration类,@ConditonalOnBean就是后边的Marker类存在则加载本类,进入程序启动类,点击@EnableEurekaServer注解,这里加载了Marker类,所以这个注解是开启eureka-server.

进入程序启动类,点击@EnableEurekaServer

点击EurekaServerMarkerConfiguration

如下类注入了Marker,则激活了EurekaServerAutoConfiguration类(eureka-server自动装配类)

10.进入EurekaServerAutoConfiguration类

找到eurekaServerBootstrap方法,然后搜索PeerAwareInstanceRegistry注入的地方

11.找到PeerAwareInstanceRegistry,点击new InstanceRegistry方法,一直点super方法,最终定位到AbstractInstanceRegistry类,这个类中提供了注册,续约,服务获取,剔除等方法,如下图

12.服务同步和剔除任务则在如下Import的红框类中,这个类实现了SmartLifecycle接口,则在bean装载并初始化完后执行start方法

下图中sysup是服务同步方法,this.registry.openForTraffic方法则是启动剔除服务

三.eureka-client代码分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值