什么是 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 Server:注册中心
Eureka Provider:服务提供者
Eureka Consumer:服务消费者
什么是注册中心
Eureka 是 Spring Cloud 中的注册中心,类似于 Dubbo 中的 Zookeeper。
那么到底什么是注册中心,为什么需要注册中心?
在传统的单体应用中,所有的业务都集中在一个项目中,当用户从浏览器发起请求时,直接由前端发送请求给后端,后端调用业务逻辑,给前端请求做出响应,完成一次调用。整个调用过程是一条直线,不需要服务之间的中转,所以没有必要引入注册中心。
随着公司项目越来越大,我们会将系统进行拆分,例如一个电商系统,可以拆分为订单模块、物流模块、支付模块等。这样,当用户发起请求时,就需要各个模块之间进行协调,这样不可避免的要进行模块之间的调用。
模块之间的调用也会变得越来越复杂,而且模块之间还存在强耦合。
为了解决服务之间的耦合,注册中心应运而生。