什么是 Eureka?

Eureka (2018年下半年停更) 是 Netflix 公司提供的一款服务注册中心,Eureka 基于 REST 来实现服务的注册与发现。

Eureka 也是 Spring Cloud 五大神兽之一,五大神兽分别如下:

注册中心——Netflix Eureka

客服端负载均衡——Netflix Ribbon

断路器——Netflix Hystrix

服务网关——Netflix Zuul

分布式配置——Spring Cloud Config

曾经,Eureka 是 Spring Cloud 中最重要的核心组件之一,Spring Cloud 中封装了 Eureka,在 Eureka 的基础上,优化了一些配置,然后提供了可视化的页面,可以方便的查看服务的注册情况以及服务注册中心集群的运行情况。

Eureka 由两部分:服务端和客户端,服务端就是注册中心,用来接收其他服务的注册,客户端则是一个 java 客户端,用来注册,并可以实现负载均衡等功能。

Eureka  介绍-冯金伟博客园

从图中,我们可以看出,Eureka 中,有三个角色:

Eureka Server:注册中心

Eureka Provider:服务提供者

Eureka Consumer:服务消费者

什么是注册中心

Eureka 是 Spring Cloud 中的注册中心,类似于 Dubbo 中的 Zookeeper。

那么到底什么是注册中心,为什么需要注册中心?

在传统的单体应用中,所有的业务都集中在一个项目中,当用户从浏览器发起请求时,直接由前端发送请求给后端,后端调用业务逻辑,给前端请求做出响应,完成一次调用。整个调用过程是一条直线,不需要服务之间的中转,所以没有必要引入注册中心。

随着公司项目越来越大,我们会将系统进行拆分,例如一个电商系统,可以拆分为订单模块、物流模块、支付模块等。这样,当用户发起请求时,就需要各个模块之间进行协调,这样不可避免的要进行模块之间的调用。

模块之间的调用也会变得越来越复杂,而且模块之间还存在强耦合。

为了解决服务之间的耦合,注册中心应运而生。