Eureka 介绍
Spring Cloud 将 Netflix 中的开源服务组件 Eureka、Ribbon、Feign 及 Hystrix 等一起整合进 Spring Cloud Netflix 模块中。Eureka 是 Spring Cloud Netflix 模块的子模块,它是 Spring Cloud 对 Netflix Eureka 的二次封装,主要负责 Spring Cloud 的服务注册与发现功能。
Eureka 两个组件
Eureka Server
服务注册中心,主要用于提供服务注册功能。当微服务启动时,会将自己的服务注册到 Eureka Server。Server 维护了一个可用服务列表,存储了所有注册到 Server 的可用服务的信息,这些可用服务可以在 Server 的管理界面中直观看到。
Eureka Client
客户端,通常指的是微服务系统中各个微服务,主要用于和 Eureka Server 进行交互。在微服务应用启动后,Eureka Client 会向 Server 发送心跳(默认周期为 30 秒)。若 Server 在多个心跳周期内没有接收到某个 Client 的心跳,Server 将它从可用服务列表中移除。
Eureka 服务注册与发现
服务注册中心:它是一个 Eureka Server,用于提供服务注册和发现功能。
服务提供者:它是一个 Eureka Client,它将自己注册到注册中心,以供消费者发现。
服务消费者:它是一个 Eureka Client,它可以从服务注册中心获取服务列表,调用所需的服务。
实现服务注册与发现的流程
1、搭建一个 Eureka Server 作为服务注册中心;
2、提供者 Eureka Client 启动时,会把当前服务器的信息注册到服务注册中心;
3、消费者 Eureka Client 启动时,也会向服务注册中心注册;
4、消费者会获取一份可用服务列表,该列表中包含了所有注册到服务注册中心的服务信息;
5、消费者在获得了可用服务列表后,消费者通过 HTTP 或消息中间件远程调用提供者提供的服务。