浅谈Zookeeper、Eureka、Nacos概念及区别

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

浅谈Zookeeper、Eureka、Nacos概念及区别

一、概念

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

  • Eureka 是Spring Cloud 微服务框架默认的组件,也是推荐的服务注册中心,
    由Netflix公司与2012将其开源出来,Eureka基于REST服务开发,主要用于实现AWS云的中服务定位,以实现中间层服务器的负载均衡和故障转移。
    zookeeper,nacos,eureka,java,dubbo,eureka

  • Nacos是阿里巴巴开源的项目,提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。更敏捷和容易地构建、交付和管理微服务平台。
    Nacos支持基于DNS和基于RPC的服务发现,动态配置服务(配置中心),动态DNS服务
    zookeeper,nacos,eureka,java,dubbo,eureka

二、Zookeeper、Eureka、Nacos区别

  • ZooKeeper客户端到Server是TCP长连接;
  • eureka是使用定时发送和服务进行联系,属于短连接;
  • nacs使用的是netty和服务直接进行连接,属于长连接;
CAP理论(A:高可用,C:一致性,P:分区容错性)
  • Zookeeper保证了CP(C:一致性,P:分区容错性)
  • Eureka保证了AP(A:高可用)
  • nacos支持CP和AP两种,根据配置识别CP或AP模式,如果注册Nacos的client节点注册时是ephemeral=true即为临时节点,那么Naocs集群对这个client节点效果就是AP,反之则是CP,即不是临时节点
Nacos提供了namespace来实现环境隔离功能。

nacos中可以有多个namespace,namespace下可以有group、service等,
不同namespace之间相互隔离,例如不同namespace的服务互相不可见,在application.yml文件的namespace配置服务名称。

Nacos的服务实例分为两种l类型:

临时实例:如果实例宕机超过一定时间,会从服务列表剔除,默认的类型。
非临时实例:如果实例宕机,不会从服务列表剔除,也可以叫永久实例。
Nacos和Eureka整体结构类似,服务注册、服务拉取、心跳等待,但是也存在一些差异

Nacos与eureka的共同点
都支持服务注册和服务拉取
都支持服务提供者心跳方式做健康检测

区别
zookepper=文件系统+监听通知机制

  • 有四种类型的znode:
    1、PERSISTENT-持久化目录节点
    指client和zookepper断开链接之后,client在zookepper上面创建的节点不会被zookepper删除,还会继续保留
    2、PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点
    比如,一个user模块部署了多台服务器,在zookepper上面进行注册自己服务,zookepper会对user模块进行创建持久性顺序节点,当第一个节点宕机之后,会按照顺序取下一个节点
    3、EPHEMERAL-临时目录节点
    client在zookepper上面进注册自己的服务,当服务宕机之后,zookepper会进行删除创建的节点
    4、EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点
    第四种情况和第二种情况很像,只不过,服务宕机之后就会剔除服务,不会永久保留
    客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端。

  • eureka简单介绍
    1、几个角色:
    eureka:服务的注册中心,主要是保存服务的信息,可以进行搭建集群来提高注册中心的高可用
    提供者:将自己的服务信息注册到eureka上面供消费者消费,同时也将获取注册表信息到本地
    消费者:在eureka上面拉取服务,然后通过httpclient进行调用服务,同时也将自己的信息注册到eureka上面
    2、eureka注册原理
    1)、先读eureka server的配置信息,从而知道eureka server在哪,以便后面进行注册
    2)、接着再读取自己的配置信息,然后将自己的信息封装在InstanceInfo实例中,等下将实例发送到eureka server中
    3)、通过上面步骤已经知道eureka server的地址了,此时先把注册拉取到本地缓存起来
    4)、将上面封装的InstanceInfo实例发送到eureka server进行注册,然后初始化心跳检测以及缓存刷新(这些都是通过开启后台线程完成的)
    5)、再次拉取注册表更新本地注册表信息
  • 3、eureka服务续约
    1)、Eureka Client通过发送心跳进行续约
    2)、默认情况下每30秒发送一次心跳
    3)、如90秒内Eureka Server未收到续约,则进行服务剔除
  • 4、eureka服务剔除
    1)、Eureka Client优雅退出时会发送cancel命令
    2)、Eureka Server收到cancel命令时会删除该节点
  • 5、eureka自我保护
    1)、Eureka Server会自动更新续约更新阀值
    2)、Eureka Server续约更新频率低于阈值则进入保护模式
    3)、自我保护模式下Eureka Server不会剔除任何注册信息

Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式,临时实例心跳不正常会被剔除,非临时实例则不会被剔除
Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式文章来源地址https://www.toymoban.com/news/detail-555005.html

  • nacos主要的核心功能
    1、服务注册:每个服务客户端通过rest方式向服务端进行注册自己的信息
    2、服务心跳:每个服务客户端都会维护一个定时心跳,向服务到证明自己是健康的,默认5s发送一次
    3、服务同步:服务器集群之间相互进行通讯来保证服务信息的一致性同时提高注册中心的高可用
    4、服务发现:客户端有一个定时任务,定时的去注册中心拉取各个服务的信息列表到本地
    5、服务健康检查:注册中心定时检查各个服务的健康状态
    6、雪崩保护:通过给每个服务实例进行配置阈值,从而实现雪崩保护
    7、临时实例:当服务宕机时,注册中心会进行删除注册的服务实例
    8、永久实例:即使服务宕机了,服务实例也不会被删除,和前面我们一起讨论的zookepper的持久性节点很像

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

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

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

相关文章

  • CAP定理下:Zookeeper、Eureka、Nacos简单分析

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

    2024年02月08日
    浏览(30)
  • zookeeper和nacos区别是什么,注册中心用zookeeper还是nacos

    注册中心对比和选型:Zookeeper、Eureka、Nacos、Consul和ETCD zookeeper和nacos区别是什么 Nacos集群raft选举算法原理 Zookeeper和Nacos是两个不同的分布式系统协调组件,它们在设计目标、功能特性和使用方式等方面存在一些区别。以下是它们的主要区别: 设计目标和适用场景: Zookeeper最

    2024年02月03日
    浏览(26)
  • 微服务-服务的注册与发现(Consul、zookeeper、etcd、eureka、Nacos)

    一. 对比常用的注册中心 Consul、zookeeper、etcd、eureka、Nacos Feature Consul Zookeeper Etcd Eureka Nacos 服务健康检查  服务状态,内存,硬盘等  (弱)长连接,keepalive  连接心跳  可配支持 传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查 多数据中心  支持  —  

    2023年04月19日
    浏览(40)
  • Nacos、ZooKeeper和Dubbo的区别

    Nacos、ZooKeeper和Dubbo是三个不同的分布式系统组件,它们之间有以下几点区别: 功能定位:Nacos主要提供服务发现、配置管理和服务治理等功能,而ZooKeeper主要是分布式协调服务,提供了分布式锁、分布式队列等原语,Dubbo则是一款高性能的RPC框架。 数据模型:Nacos采用类似于

    2024年02月08日
    浏览(27)
  • SpringCloud(H版&alibaba)框架开发教程,使用eureka,zookeeper,consul,nacos做注册中心——附源码(1)

    源码地址:https://gitee.com/jackXUYY/springboot-example 创建订单服务,支付服务,公共api服务(共用的实体),eureka服务 1.cloud-consumer-order80 2.cloud-provider-payment8001 3.cloud-api-commons 4.cloud-eureka-server7001 5.cloud-eureka-server7002 如图所示 修改本地host映射 修改数据库地址为自己的地址,并初始

    2024年02月03日
    浏览(38)
  • 浅谈注册中心Eureka、Nacos

    (强一致性、单调一致性、会话一致性、最终一致性、弱一致性) C:一致性 (所有节点在同一时间具有相同的数据) Consistency;  A:可用性 (保证每个请求不管成功或者失败都有响应) Availability;  P:分区容错性 (系统中任意信息的丢失或失败不会影响系统的继续运作) 

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

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

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

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

    2024年02月19日
    浏览(23)
  • Eureka和Zookeeper的区别

    ● Mysql,Oracle,SqlServer等关系型数据库遵循的原则是 ACID 原则; 即 : A: 原子性 C: 一致性 I: 独立性 D: 持久性 ● Redis,Mogodb 等非关系型数据库遵循的原则是 CAP 原则; 即: C: 一致性, A: 可用性, P: 分区容错性(服务对网络分区故障的容错性) CAP理论: 在任何分布式系统中,最多只

    2024年02月13日
    浏览(27)
  • 84、zookeeper和eureka的区别

    zk:CP设计(虽一致性),目标是一个分布式的协调系统,用于进行资源的统一管理 当节点crash后,需要进行leader的选举,在这个期间内,zk服务是不可用的。 eureka: AP设计(高可用),目标是一个服务注册发现系统,专门用于微服务的服务发现注册。 Eureka各个节点都是平等的,几个

    2024年02月16日
    浏览(27)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包