主流服务注册中心对比
Zookeeper
Zookeeper 是一个分布式服务框架,是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中一些经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
简单来说,zookeeper 本质就是 存储 + 监听通知。
zookeeper 用来做服务注册中心,主要是因为它具有节点变更通知功能,只要客户端监听相关服务器节点,服务器节点的所有变更,都能及时地通知到监听的客户端,这样作为调用方只需要使用 zookeeper 的客户端就能实现服务节点的订阅和变更通知功能。另外,zookeeper 可用性也可以,再要半数以上的选举节点存活,整个 zookeeper 集群就是可用的。
Eureka
由 Netflix 开源,并被 Pivatal 集成到 SpringCloud 体系中,它是基于 RestfulAPI 风格开发的服务注册与发现组件。
Consul
Consul 是由 HashiCorp 基于 Go 语言开发的支持多数据中心分布式高可用的服务发布和注册服务软件,采用 Raft 算法保证服务的一致性,且支持健康检查。
Nacos
Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
简单来说,Nacos 就是 注册中心 + 配置中心 的组合,帮助我们解决微服务开发必会涉及到的服务注册与发现、服务配置、服务管理等问题。Nacos 是 Spring Cloud Alibaba 核心组件之一。
对比
组件名 | 语言 | CAP | 对外暴露接口 |
---|---|---|---|
Zookeeper | Java | CP | 客户端 |
Eureka | Java | AP (自我保护机制,保证高可用) | HTTP |
Consul | Go | CP | HTTP/DNS |
Nacos | Java | 支持 AP/CP 切换 | HTTP |
C : 数据一致性
A : 可用性
P : 分区容错性