原创

Eureka Server开关流程

本文字数:

1851

,大约阅读2分钟

Eureka Server 是 Netflix 开发的注册中心,Eureka Server 的配置搭建比较简单,通过一个简单的依赖,再通过在启动类上增加一个注解,还有简单的配置文件就可以了。那 SpringBoot 的项目是如何通过注解变成注册中心呢?其实流程比较简单,本文简单的整理了一下它的开关流程。

一、Eureka Server 开关流程

使用 Eureka Server 时需要引入 Eureka Server 的 starter 依赖 spring-cloud-starter-netflix-eureka-server,这是最基本的一步。通过该 starter 依赖,Maven 会自动的下载其相关具体依赖,Eureka Server 的具体依赖是 spring-cloud-netflix-eureka-server。通过该依赖的 Jar 包中可以找到 spring.factories 的配置,该配置文件如下:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  org.springframework.cloud.netflix.eureka.server.EurekaServerAutoConfiguration

通过上面的配置文件,我们来查找 EurekaServerAutoConfiguration 这个类。打开该类以后,在该类上有一个注解,该注解如下:

@ConditionalOnBean({Marker.class})

到这一步就基本可以确定是否加载 EurekaServerAutoConfiguration 这个类了。

接着,我们去看一下 @EnableEurekaServer 这个注解,该注解有一个 @Import 的注解,如下:

@Import({EurekaServerMarkerConfiguration.class})

此时,看一下 EurekaServerMarkerConfiguration 这个类,代码如下:

public class EurekaServerMarkerConfiguration {
    public EurekaServerMarkerConfiguration() {
    }

    @Bean
    public EurekaServerMarkerConfiguration.Marker eurekaServerMarkerBean() {
        return new EurekaServerMarkerConfiguration.Marker();
    }

    class Marker {
        Marker() {
        }
    }
}

从代码中可以看出,整个类什么具体的事都没有做,只实例化了一个 Marker 类。

回到 @EnableEurekaServer 注解前面的流程,有一个 @ConditionalOnBean 的注解,该注解就表示如果内存中有 Market.class 类,则加载 EurekaServerAutoConfiguration 类,这样整个流程就串起来了。

二、小结

上面的代码简单的看了 SpringBoot 项目如何变成 Eureka Server 的开关,这里我整理了一个简单的流程图,希望可以对大家有所帮助。

Java
SpringBoot
服务注册与发现
  • 作者:Netor0x86(联系作者)
  • 发表时间:2021-03-09 07:00
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 公众号转载:请在文末添加作者公众号二维码
  • 评论