微服务之注册中心 Zookeeper 与 Eureka 比较
分布式环境的一个非常重要的理论是 CAP 原则,即一个分布式系统不可能同时满足 C(一致性)、A(可用性) 和 P(分区容错)。而分区容错是分布式架构中必须要保证的,因此只能在 A 与 C 之间进行权衡。
Zookeeper 保证的是 CP , 而 Eureka 保证的则是 AP。
分布式环境的一个非常重要的理论是 CAP 原则,即一个分布式系统不可能同时满足 C(一致性)、A(可用性) 和 P(分区容错)。而分区容错是分布式架构中必须要保证的,因此只能在 A 与 C 之间进行权衡。
Zookeeper 保证的是 CP , 而 Eureka 保证的则是 AP。
分布式微服务在生产环境必须搭建集群来保证高可用,集群至少需要搭建两台服务器。
Eureka 的集群搭建配置非常简单,每一台 Eureka 只需在配置中指定另外多个 Eureka 的地址就可实现集群的搭建。官方文档:12. Service Discovery: Eureka Server。
在学习 Eureka 之前,先了解下 Spring Cloud Netflix。
Spring Cloud Netflix 通过自动配置和绑定 Spring 环境以及 Spring 编程模型习惯为 Spring Boot 应用程序提供 Netflix OSS 集成。通过一些简单的注释,即可快速启用和配置常见的组件,并使用经过实战考验的 Netflix 组件构建大型分布式系统,提供的组件包含服务发布(Eureka)、断路器(Hystrix)、智能路由(Zuul)、客户端负载均衡。
Spring Cloud Eureka 是 Spring Cloud Netflix 套件之一;是 Netflix 服务发现服务器和客户端,主要负责服务发现;是一个基于 REST 的服务,能够方便地将服务注册到 Eureka 中进行统一管理,配置和部署高可用服务器,每个服务器将注册服务的状态复制到其他服务器(管理所有服务的信息和状态)。