一、Spring Cloud Eureka 介绍
- Spring Cloud Euraka 是 Spring Cloud 集合中一个组件,它是对 Euraka 的集成,用于服务注册和发现
- Eureka 是 Netflix 中的一个开源框架。它和 zookeeper、Consul 一样,都是用于服务注册管理的,同样,Spring-Cloud 还集成了 ZooKeeper 和 Consul
- 在项目中使用 Spring Cloud Euraka 的原因是它可以利用 Spring Cloud Netfilix 中其他的组件,如:zull 等,因为 Euraka 是属于 Netfilix 的
二、Euraka 介绍
Eureka 由多个 instance (服务实例)组成,这些服务实例可以分为两种:Eureka Server 和 Eureka Client。为了便于理解,我们将 Eureka Client 再分为 Service Provider 和 Service Consumer
- Eureka Server 提供服务注册和发现
- Service Provider 服务提供方,将自身服务注册到 Eureka,从而使服务消费方能够找到
- Service Consumer 服务消费方,从 Eureka 获取注册服务列表,从而能够消费服务
三、Eureka 与 Zookeeper 比较
3.1、CAP 原理
- P:Partition tolerance,网络分区容错。类似多机房部署,保证服务稳定性
- A:Availability,可用性
- C:Consistency ,一致性
CAP 定理:CAP 三个属性对于分布式系统不同同时做到,如:AP、CP、AC
3.2、区别
- ZooKeeper 是 CP,分布式协同服务,突出一致性。对 ZooKeeper 的的每次请求都能得到一致的数据结果,但是无法保证每次访问服务可用性。如请求到来时,ZooKeeper 正在做 leader 选举,此时不能提供服务,即不满足 A 可用性
- Euere 是 AP,高可用与可伸缩的 Service 发现服务,突出可用性。相对于 Zookeeper 而言,可能返回数据没有一致性,但是保证能够返回数据,服务是可用的