`
yixibo
  • 浏览: 185513 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

服务注册中心比较Consul vs Zookeeper vs Etcd vs Eureka

阅读更多

分布式领域CAP理论,
Consistency(一致性), 数据一致更新,所有数据变动都是同步的
Availability(可用性), 好的响应性能
Partition tolerance(分区容错性) 可靠性

定理:任何分布式系统只可同时满足二点,没法三者兼顾。
忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。

原文链接地址:http://luyiisme.github.io/2017/04/22/spring-cloud-service-discovery-products/

这里就平时经常用到的服务发现的产品进行下特性的对比,首先看下结论:

Feature Consul zookeeper etcd euerka
服务健康检查 服务状态,内存,硬盘等 (弱)长连接,keepalive 连接心跳 可配支持
多数据中心 支持
kv存储服务 支持 支持 支持
一致性 raft paxos raft
cap ca cp cp ap
使用接口(多语言能力) 支持http和dns 客户端 http/grpc http(sidecar)
watch支持 全量/支持long polling 支持 支持 long polling 支持 long polling/大部分增量
自身监控 metrics metrics metrics
安全 acl /https acl https支持(弱)
spring cloud集成 已支持 已支持 已支持 已支持
  • 服务的健康检查

Euraka 使用时需要显式配置健康检查支持;Zookeeper,Etcd 则在失去了和服务进程的连接情况下任务不健康,而 Consul 相对更为详细点,比如内存是否已使用了90%,文件系统的空间是不是快不足了。

  • 多数据中心支持

Consul 通过 WAN 的 Gossip 协议,完成跨数据中心的同步;而且其他的产品则需要额外的开发工作来实现;

  • KV 存储服务

除了 Eureka ,其他几款都能够对外支持 k-v 的存储服务,所以后面会讲到这几款产品追求高一致性的重要原因。而提供存储服务,也能够较好的转化为动态配置服务哦。

  • 产品设计中 CAP 理论的取舍

Eureka 典型的 AP,作为分布式场景下的服务发现的产品较为合适,服务发现场景的可用性优先级较高,一致性并不是特别致命。其次 CA 类型的场景 Consul,也能提供较高的可用性,并能 k-v store 服务保证一致性。 而Zookeeper,Etcd则是CP类型 牺牲可用性,在服务发现场景并没太大优势;

  • 多语言能力与对外提供服务的接入协议

Zookeeper的跨语言支持较弱,其他几款支持 http11 提供接入的可能。Euraka 一般通过 sidecar的方式提供多语言客户端的接入支持。Etcd 还提供了Grpc的支持。 Consul除了标准的Rest服务api,还提供了DNS的支持。

  • Watch的支持(客户端观察到服务提供者变化)

Zookeeper 支持服务器端推送变化,Eureka 2.0(正在开发中)也计划支持。 Eureka 1,Consul,Etcd则都通过长轮询的方式来实现变化的感知;

  • 自身集群的监控

除了 Zookeeper ,其他几款都默认支持 metrics,运维者可以搜集并报警这些度量信息达到监控目的;

  • 安全

Consul,Zookeeper 支持ACL,另外 Consul,Etcd 支持安全通道https.

  • Spring Cloud的集成

目前都有相对应的 boot starter,提供了集成能力。

总的来看,目前Consul 自身功能,和 spring cloud 对其集成的支持都相对较为完善,而且运维的复杂度较为简单(没有详细列出讨论),Eureka 设计上比较符合场景,但还需持续的完善。

 

 

分享到:
评论

相关推荐

    微服务之Eureka服务注册中⼼

    在微服务架构中,服务注册中心的选择是非常重要的,常见的服务注册中心有Eureka、Nacos、Zookeeper、Consul等。每种服务注册中心都有其特点和优点,选择合适的服务注册中心是微服务系统的关键所在。 本文还对比了...

    SpringCloud——Zookeeper(注册中心)

    在分布式系统中,服务注册与发现是至关重要的一个环节,SpringCloud通过集成不同的注册中心,如Eureka、Consul和Zookeeper,为微服务架构提供了强大的支持。本篇主要聚焦于SpringCloud与Zookeeper的结合,讲解如何...

    consul_1.11.2_windows_amd64.zip

    在 Spring Cloud 体系中,几乎每个角色都会有两个以上的产品提供选择,比如在注册中心有:Eureka、Consul、zookeeper、etcd 等;网关的产品有 Zuul、Spring Cloud Gateway 等。在注册中心产品中,最常使用的是 ...

    [] - 2022-05-26 ZooKeeper、Eureka、Consul 、Nacos,微服务注册中心怎么选?.pdf

    互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术...

    SpringBoot系列 使用 consul 作为服务注册组件.docx

    本文将深入探讨如何在 SpringBoot 应用中集成 Consul 作为服务注册组件,并对比其他常见的服务治理组件,如 Spring Cloud Eureka 和 Zookeeper。 **服务注册组件选择** 1. **Spring Cloud Eureka**:由 Netflix ...

    EureKa服务注册与发现.docx

    4. **EureKa与其他服务注册中心的比较** - **与Zookeeper的对比**:EureKa更注重服务发现的可用性,而Zookeeper更强调一致性,适合需要强一致性的场景。 - **与Consul的对比**:Consul除了服务发现,还提供了健康...

    SpringCloud之二 Eureka注册和使用

    Eureka不是服务注册中心的唯一选择,除了Eureka之外,还可以使用Consul、Etcd、Zookeeper等。在Java生态中,dubbo是一个知名的RPC框架,它也支持多种注册中心,比如Zookeeper和Redis。在选择注册中心时,可以根据...

    SpringCloud-Eureka

    Eureka 和 Zookeeper 是两个不同的注册中心,Eureka 注重服务的可用性,而 Zookeeper 注重数据的一致性。Spring Cloud 还提供了其他注册中心如 Consul 和 Nacos。 知识点一:Eureka 简介 Eureka 是 Netflix 在线...

    consul-1.6.1-win-64.zip

    8. **对比其他服务注册中心**:Consul 与 ZooKeeper 和 Eureka 等服务注册中心相比,具有更丰富的特性集,如内置的健康检查和 K/V 存储。ZooKeeper 更侧重于提供分布式协调,Eureka 主要关注服务注册和发现,而 ...

    dubbo+zookeeper分布式服务

    这样,即使未来更换了服务发现机制,如从 ZooKeeper 更改为 Eureka 或 Consul,Dubbo 的整体架构也能保持不变,增强了系统的可扩展性和适应性。 此外,Dubbo 还提供了丰富的监控功能,包括服务调用的统计信息、服务...

    spring cloud zookeeper gateway

    2. **Spring Cloud生态**:掌握Spring Cloud的基本概念和组件,如Eureka、Consul等其他服务发现机制,以及它们与Zookeeper的对比。 3. **Spring Cloud Gateway**:学习Gateway的配置、路由规则定义、过滤器的使用,...

    consul 商品服务部分代码示例

    与它同类的东西,还有Eureka、zooKeeper、etcd等也能做这些事,说不上谁好谁坏,看场景挑合适的吧,不过Eureka现在已经闭源了,这个还是建议不要去用这个了。 本文主要针对商城系统为例,以swoft 为基础,对商品...

    consul.zip

    Eureka曾是Netflix开源的一款流行的服务注册与发现组件,但随着其官方宣布停更,开发者们开始寻找替代方案,如Zookeeper和Consul等。本文将重点探讨Consul,一个由HashiCorp公司开发的全面的分布式系统工具,它不仅...

    springcloud注册中心

    SpringCloud是微服务架构中的一个...Eureka、Consul和Zookeeper是常见的注册中心实现,各有优缺点,选择时需结合具体项目需求。在实际应用中,我们需要合理配置注册中心,利用其特性优化服务治理,提升系统整体性能。

    手动获得注册中心信息,并对服务进行操作

    常见的注册中心有Zookeeper、Eureka和Consul等。 在Dubbo中,注册中心的主要功能包括: 1. **服务注册**:服务提供者启动时,将自身服务的元数据注册到注册中心,使得其他服务能够发现它。 2. **服务发现**:服务...

    Eureka学习讲义大全.pdf

    Eureka不仅仅是一个服务注册中心,它还提供了服务注册、心跳检测、健康检查等功能,确保服务的高可用性。 **Eureka与Zookeeper的区别** Eureka和Zookeeper在设计哲学上有显著的不同,主要体现在CAP原则的应用上。...

    微服务开发各种注册中心对比

    Consul在健康检查方面比较出色,支持多数据中心,并且对服务的健康状况有非常详细的检查机制。Consul的Web UI界面提供了可视化管理服务的能力,其使用Raft算法保证一致性,因此牺牲了部分可用性来确保数据的一致性。...

    springcloud注册中心demo

    - Eureka Server自身可以集群部署,通过Zookeeper或Consul等工具实现集群间的同步,提高注册中心的可用性。 - Eureka Server有自我保护机制,当网络分区发生时,会暂时阻止服务实例的剔除,防止因网络问题导致的...

    Dubbo和Spring Cloud微服务架构对比——服务注册和发现.docx

    - **注册中心**:Spring Cloud通常使用Eureka作为服务注册中心,也可以集成Consul或Zookeeper。 - **服务发现机制**:Spring Cloud Eureka通过HTTP REST API进行服务注册与发现,提供了简单易用的客户端SDK。 - *...

Global site tag (gtag.js) - Google Analytics