Skip to content

Eureka

作用

用来做服务治理,其必须实现服务注册和服务发现的功能。分为注册中心(Eureka Server)和客户端。

客户端指注册到注册中心的具体的服务实例,可分为服务提供者和服务消费者。

服务提供者用来将自己的服务注册到注册中心供服务消费者使用,服务消费者从注册中心获取相应的服务提供者对应的服务地址并调用该服务。

在Eureka中,同一个实例既可以是服务提供者,也可以是服务消费者,服务提供者也会向另一个服务端实例注册自己的信息,从而实现Eureka Server集群。

Eureka Server集群的核心概念

有7个,分别是服务注册、服务同步、服务续约、失效剔除、服务下线、服务启动、服务发现等。

服务提供者将自己注册到注册中心叫服务注册

注册中心会服务注册信息转发到集群叫服务同步

两者之间维护一个续约请求来判断服务是否正常运行叫服务续约

如果注册中心在规定时间内没有收到续约请求会将服务提供者从服务清单中剔除叫失效剔除

当注册中心收到服务实例下线的通知后会将该服务的状态置为下线,同时会将该消息同步给其他服务实例叫服务下线

当集群中的注册中心启动后会从其他注册中心获取所有的注册中心叫服务启动 服务消费者从注册中心获取服务清单叫服务发现

服务注册

Eureka Server将接收到的服务提供者的注册信息存储在一个双层结构的Map中,其中,第一层的Key是服务名,第二层的Key是具体服务的实例名。

服务同步

在Eureka Server的集群中,Eureka Server会将一个服务提供者的注册信息转发到集群中,实现Eureka Server之间的服务同步。

服务续约

当服务提供者在注册中心完成注册后,会维护一个续约请求来持续发送信息给该Eureka Server表示其正常运行,当Eureka Server长时间收不到续约请求时,会将该服务实例从服务列表中剔除。

失效剔除

注册中心会定时将超过一定时间没有收到服务续约消息的服务实例从服务清单中剔除。

服务启动

当一个Eureka Server初始化或重启时,本地注册服务为空。它首先会调用SyncUp()从别的服务节点获取所有的注册信息,然后执行Register操作,完成初始化,从而同步所有的服务信息。

服务下线

当服务实例正常关闭时,服务提供者会给注册中心发送一个服务下线的消息,注册中心收到后,会将该服务实例的状态置为下线,并将该消息传播给其他服务实例。

服务发现

是指服务消费者会向注册中心发送一个获取注册的服务清单,注册中心会返回一个只读的服务清单给它。

实现一个注册中心

要4步,

1、在pom文件中添加spring-cloud-starter-eureka-server依赖;

2、通过@EnableEurekaServer注解开启服务注册、服务发现功能;

3、配置application.properties;

4、访问和使用服务。

实现一个服务提供者

要5步,

1、在pom文件中添加spring-cloud-starter-eureka依赖;

2、通过@EnableEurekaClient注解开启服务发现的功能;

3、配置application.properties;

4、定义服务接口;

5、访问和使用服务。

实现一个服务消费者要4步

1.在pom文件中添加spring-cloud-starter-eureka依赖;

2.通过@EnableEurekaClient注解开启服务发现的功能,

如果通过Feign调用,则通过@EnableFeignClients开启对Feign的支持;

3.配置application.properties;

4.调用服务提供者暴露出来的服务接口。