Zookeeper、Eureka、Consul、Nacos对比

这篇具有很好参考价值的文章主要介绍了Zookeeper、Eureka、Consul、Nacos对比。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Zookeeper 是⼀款经典的服务注册中心产品(虽然它最初的定位并不在于此),在很长⼀段时间里,它是国人在提起 RPC 服务注册中心时心里想到的唯⼀选择。
Eureka 借着微服务概念的流行,与 SpringCloud 生态的深度结合,也获取了大量的用户。
Consul 在设计上把很多分布式服务治理上要用到的功能都包含在内,可以支持服务注册、健康检查、配置管理、Service Mesh 等。
Nacos 携带着阿里巴巴大规模服务生产经验,试图在服务注册和配置管理这个市场上,提供给用户⼀个新的选择。

数据模型

  • Zookeeper 没有针对服务发现设计数据模型,它的数据是以⼀种更加抽象的树形 K-V 组织的,因此理论上可以存储任何语义的数据。
  • Eureka 和 Consul 都是做到了实例级别的数据扩展,这可以满足大部分的场景,不过无法满足大规模和多环境的服务数据存储。
  • Nacos 是⼀种服务-集群-实例的三层模型。基本可以满足服务在所有场景下的数据存储和管理。

数据⼀致性

从协议层面上看,⼀致性的选型目前就两种:⼀种是基于 Leader 的非对等部署的单点写⼀致性,⼀种是对等部署的多写⼀致性。

  • Zookeeper 是CP,采用自定义的 ZAB 协议保证数据的强⼀致。Zookeeper 在 Dubbo 体系下表现出的行为,其实采用 Eureka 的 Renew 机制更加合适,因为 Dubbo 服务往 Zookeeper 注册的就是临时节点,需要定时发心跳到 Zookeeper 来续约节点,并允许服务下线时,将 Zookeeper 上相应的节点摘除。
  • Eureka 是AP,节点都是对等的,通过相互注册提高可用性,通过renew机制进行数据的最终修复。
  • Consul 是CP,基于Raft协议保证数据的强一致性。
  • Nacos 同时支持 CP 和 AP ,⼀个是基于简化的 Raft 的 CP ⼀致性,⼀个是基于自研协议 Distro 的 AP ⼀致性。

负载均衡

  • Zookeeper 不支持。
  • Eureka 本身不支持,通过Ribbon做负载均衡。Ribbon是客户端负载均衡,主要通过 IRule、ServerListFilter 等接口实现,Ribbon采用的是两步负载均衡,第⼀步是先过滤掉不会采用的服务提供者实例,第二步是在过滤后的服务提供者实例里,实施负载均衡策略。
  • Consul 本身不支持,通过Fabio做负载均衡。 
  • Nacos 本身具备负载均衡能力,可以提供服务端负载均衡与客户端负载均衡。

健康检查

服务端健康检查最常见的方式是 TCP 端口探测和 HTTP 接口返回码探测,这两种探测方式因为其协议的通用性可以支持绝大多数的健康检查场景。Zookeeper 和 Eureka 都实现了⼀种 TTL(Time To Live)机制,就是如果客户端在⼀定时间内没有向注册中心发送心跳,则会将这个客户端摘除。

  • Zookeeper 使用TCP的KeepAlive保持客户端和服务端的连接。
  • Eureka 通过客户端心跳来确定客户端是否启动。
  • Consul 通过check方法实现健康检查,check方法有五种:Script + Interval、HTTP + Interval、TCP+ Interval、Docker + interval、TTL。
  • Nacos 既支持客户端的健康检查(KeepAlive、Client Beet),也支持服务端的健康检查(MYSQL命令等)。

性能与容量

影响读写性能的因素很多:⼀致性协议、机器的配置、集群的规模、存量数据的规模、数据结构及读写逻辑的设计等等。并非性能越高就越好,因为追求性能往往需要其他方面做出牺牲。文章来源地址https://www.toymoban.com/news/detail-603772.html

  • Zookeeper 在写性能可以达到上万的 TPS,容量从存储节点数来说可以达到百万级别。不过 Paxos 协议限制了 Zookeeper 集群的规模(3、5个节点)。当大量实例上下线时,Zookeeper 的表现并不稳定,同时在推送机制上的缺陷,会引起客户端的资源占用上升,从而性能急剧下降。
  • Eureka 在服务实例规模在 5000 左右的时候,就已经出现服务不可用的问题,甚至在压测的过程中,如果并发的线程数过高,就会造成 Eureka crash。
  • Nacos 在开源版本中,服务实例注册的支撑量约为 100 万,服务的数量可以达到 10 万以上。

到了这里,关于Zookeeper、Eureka、Consul、Nacos对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 服务注册与发现Eureka、Zookeeper、Consul 三个注册中心的异同点(CAP理论)

    Eureka Eureka是由Netflix开源的一个服务注册和发现组件,它主要用于构建高可用、分布式系统的基础设施中。Eureka的服务器端被称为Eureka Server,客户端则是那些需要注册的服务。Eureka具有以下特点: 高可用性 :Eureka支持多节点部署,能够在节点故障时自动进行故障转移。 自我

    2024年04月22日
    浏览(35)
  • SpringCloud学习笔记(上):服务注册与发现:Eureka、Zookeeper、Consul+负载均衡服务调用:Ribbon

    SpringCloud=分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶。 springboot版本选择: git源码地址:https://github.com/spring-projects/spring-boot/releases/ SpringBoot2.0新特性:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release springcloud版本选

    2024年02月08日
    浏览(45)
  • eureka、zookeeper、nacos区别

    在分析eureka、zookeeper、nacos区别前,需要先清楚服务注册、服务发现是什么? 在传统的系统部署中, 服务运行在一个固定的已知的 IP 和端口上 ,如果一个服务需要调用另外一个服务,可以 通过地址直接调用 。但是,在微服务架构下,服务实例的启动和销毁是很频繁的, 服

    2024年02月07日
    浏览(39)
  • Nacos、Eureka和Zookeeper有什么区别

        Nacos、Eureka和Zookeeper都是服务注册中心,它们的主要功能是管理分布式系统中各个微服务实例的注册与发现。它们之间的主要区别在于: 1. 语言支持:Nacos是用Java语言开发的,Eureka是用Java语言开发的,Zookeeper则是用C语言开发的。 2. 功能特性:Nacos支持服务发现、配置管

    2024年02月07日
    浏览(45)
  • 浅谈Zookeeper、Eureka、Nacos概念及区别

    一、概念 ZooKeeper是一个开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 ZooKeeper包含一个简单的原语集,提供Java和C的接口。

    2024年02月15日
    浏览(40)
  • CAP定理下:Zookeeper、Eureka、Nacos简单分析

    C: 一致性(Consistency) :写操作之后的读操作也需要读到之前的 A: 可用性(Availability) :收到用户请求,服务器就必须给出响应 P: 分区容错性(Partition tolerance) :系统中任意信息的丢失或失败不会影响系统的继续运作 CAP定理 指的是在一个分布式系统中,C、A、P三者不可兼

    2024年02月08日
    浏览(42)
  • Nacos vs. Eureka:微服务注册中心的对比

    Nacos vs. Eureka:微服务注册中心的对比 前言: 欢迎来到本篇博客,今天我们将深入研究两个常用的微服务注册中心:Nacos 和 Eureka。微服务架构的兴起使得服务注册中心成为整个体系中不可或缺的一部分,而选择一个适合自己项目的注册中心显得尤为重要。 1. Nacos 和 Eureka 简介

    2024年02月03日
    浏览(44)
  • 注册中心ZK、nameServer、eureka、Nacos介绍与对比

    微服务架构是存在着很多跨服务调用,每个服务都存在着多个节点,如果有多个提供者和消费者,当提供者增加/减少或者消费者增加/减少,双方都需要感知发现。所以诞生了注册中心这个中间件。 市面上有很多注册中心,如 Zookeeper、NameServer、Eureka、Nacos,下面我来讲一下它

    2024年02月06日
    浏览(42)
  • Zookeeper与Nacos的对比分析

    Zookeeper 和 Nacos 都是分布式系统中常用的配置管理和服务发现工具。Zookeeper 是一个开源的分布式协调服务,提供一致性、可靠性和原子性等特性。Nacos 是一个云原生的配置管理和服务发现平台,提供动态配置和服务发现等功能。 在本文中,我们将从以下几个方面对比分析 Z

    2024年02月19日
    浏览(32)
  • 为什么使用Nacos而不是Eureka(Nacos和Eureka的区别)

    为什么如今微服务注册中心用Nacos相对比用Eureka的多了?本文章将介绍他们之间的区别和优缺点。 简介: Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。 详解: Eureka包

    2024年02月11日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包