编程语言
首页 > 编程语言> > Spring Cloud Eureka源码分析

Spring Cloud Eureka源码分析

作者:互联网

Eureka总体概览

我们先看一段官网的介绍:

image.png

服务发现是基于微服务架构的关键原则之一。试图手工配置每个客户端或某种约定俗成的形式,可能很难做到,而且会很脆。Eureka就是Netflix服务发现服务端和客户端。服务端可以被配置和部署成高可用,每个服务器都可以将注册服务的状态复制到其他服务器上。

Eureka的关键核心概念

Eureka服务治理有一些核心概念,今天将从源码中剖析Eureka Client的核心概念

自动装配的主入口

要使用eureka的客户端,需要引入一下依赖就可以了

image.png

我们找到spring-cloud-netflix-eureka-client包的spring.factories文件,然后查看该文件内容

 

我们主要看EurekaClientAutoConfiguration这个类,这个是eureka客户端自动装配的主要配置类,负责Eureka关键Beans的配置和初始化

 

这个类向Spring容器注册了两个重要的实例:

 

 

@EnableEurekaClient注解

@EnableEurekaClient注解,在最新的版本上好像没有像以前的版本导入什么类或者实例了,很奇怪。

image.png

工具类DiscoveryClient介绍与作用

前面看到的实例化的CloudEurekaClient继承了DiscoveryClient,而DiscoveryClient是与Eureka Server交互的工具类。主要有四大作用:

1.用Eureka服务器注册实例  

2 与Eureka服务器续租

3.关机期间取消Eureka服务器的租约

4.查询在Eureka服务器上注册的服务/实例列表。

 

这些功能的实现主要在DiscoveryClient的初始化的方法内,接下来就去初始化方法看看:

 

image.png

image.png

 

当第一次或者增量不可用的时候,使用getAndStoreFullRegistry拉取全量  否则的话,使用getAndUpdateDelta拉取增量

 

该方法用于初始化所有计划任务,包括cluster resolvers, heartbeat, instanceInfo replicator, fetch

下面是通过Heartbeat timer进行续约

 

总结

标签:服务,Spring,Eureka,源码,注册,服务器,DiscoveryClient,Cloud,客户端
来源: https://blog.csdn.net/shalistone/article/details/105956804