Zookeeper 和 Eureka 之间的区别

CAP 理论

在总结两者的区别之前,我们先来看一个 CAP 理论。

什么叫 CAP 理论呢?CAP 理论是由 Eric Brewer 教授提出,是分布式系统中的一个重要的概念。CAP 具体如下:

C(Consistency):数据一致性。大家都知道,分布式系统中,数据会有副本。由于网络或者机器故障等因素,可能有些副本数据写入正确,有些却写入错误或者失败,这样就导致了数据的不一致了。而满足数据一致性规则,就是保证所有数据都要同步。

A(Availability):可用性。我们需要获取什么数据时,都能够正常地获取到想要的数据(当然,允许可接受范围内的网络延迟),也就是说,要保证任何时候请求数据都能够正常响应。

P(Partition Tolerance):分区容错性。当网络通信发生故障时,集群仍然可用,不会因为某个节点挂了或者存在问题,而影响整个系统的正常运作。

对于分布式系统来说,出现网络分区是不可避免的,因此分区容错性是必须要具备的。也就是说,CAP三者,P是必须的,是个客观存在的事实,不可避免,也无法绕过。

Zookeeper 的 CP 原则

对于 Zookeeper 来说,它是 CP 的。也就是说,Zookeeper 是保证数据的一致性的,但是这里还需要注意一点是,Zookeeper 它不是强一致的,什么意思呢?打个比方,现在客户端 A 提交一个写操作,Zookeeper 在过半数节点操作成功之后就可以返回,但此时,客户端 B 的读操作请求的是 A 写操作尚未同步到的节点,那么读取的就不是 A 最新提交的数据了。

那如何保证强一致性呢?我们可以在读取数据的时候先执行一下 sync 操作,即与 leader 节点先同步一下数据,再去取,这样才能保证数据的强一致性。

但是 Zookeeper 也有个缺陷,刚刚提到了 leader 节点,当 master 节点因为网络故障与其他节点失去联系时,剩余节点会重新进行 leader 选举。问题在于,选举 leader 的时间太长,30 ~ 120s, 且选举期间整个 Zookeeper 集群都是不可用的,这就导致在选举期间注册服务瘫痪。

在云部署的环境下,因网络问题使得 Zookeeper 集群失去 master 节点是较大概率会发生的事,虽然服务能够最终恢复,但是漫长的选举时间导致的注册长期不可用是不能容忍的。比如双十一当天,那就是灾难性的。

Eureka 的 AP 原则

大规模网络部署时,失败是在所难免的,因此我们无法回避这个问题。当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册信息,但不能接受服务直接 down 掉不可用。

Eureka 在被设计的时候,就考虑到了这一点,因此在设计时优先保证可用性,这就是 AP 原则。Eureka 各个节点都是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点依然可以提供注册和查询服务。而 Eureka 的客户端在向某个 Eureka 注册或时如果发现连接失败,则会自动切换至其它节点,只要有一台 Eureka 还在,就能保证注册服务可用(即保证A原则),只不过查到的信息可能不是最新的(不保证C原则)。

正因为应用实例的注册信息在集群的所有节点间并不是强一致的,所以需要客户端能够支持负载均衡以及失败重试。在 Netflix 的生态中,ribbon 可以提供这个功能。

因此, Eureka 可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像 Zookeeper 那样使整个注册服务瘫痪。

作为服务注册中心,最重要的是要保证可用性,可以接受短时间内数据不一致的情况。个人觉得 Eureka 作为单纯的服务注册中心来说要比 Zookeeper 更加“专业”一点。

不过 Eureka2.x 分支不再维护,但是 Eureka1.x 官方还在维护,目前最新 RELEASE 版本是 1.9.9,所以并不是像网上说的 Eureka 凉了啥的。

Eureka 是随着 Spring Cloud 被人们熟知,但是 Spring Cloud 支持使用 Eureka、Zookeeper、Consul 实现服务发现的能力。从 Eureka 切换成 Zookeeper 只需要改个依赖,改几行配置就可以了。更多的是要多了解它们的原理和区别。

第133章 PCL OrientedBoundingBox 有向包围盒 中文叫有向包围盒,是一种旋转过的包围盒。特点:不像AABB那样固定朝向坐标轴能更紧密地包裹物体适用于复杂姿态的物体,比如倾斜、旋转的物体通常通过PCA、惯性矩等算法确定方向。 阅读详情

相关推荐

Smart200 PLC实现Bool信号接通延时、关闭延时作用

解决Smart200 PLC时间继电器和脉冲扫描P或N不能重复使用的问题,用于Bool信号延时接通和延时关闭的作用,可调整时间基数

gk_121的博客 4318

zookeeper和Eureka的区别

1:zookeeper保证cp原则(一致性)而Eureka保证的是ap原则(可用性) 2: zookeeper在选举旗舰注册服务瘫痪不可用,而Eureka各个节点平等,只要一台就能保证服务可以,但查询

zqlhy1102的博客 1万+

基于微信小程序的扫码签到系统源码

大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具。代码注释齐全,没有多余代码,适合学习(毕设),二次开发,包含论文技术相关文档。签到管理:新增签到,点击查看码展示二维码(有时效性)springboot mybatis 小程序。签到管理:查看用户创建的签到,可删除。用户管理:查看注册用户信息,及删除。签到记录:查看用户签到记录:可删除。个人信息:展示个人信息,可修改。统计分析:查看用户,签到数量。签到记录:查看用户签到记录。登录注册(含授权登录)我的签到:查看签到记录。

wfuhui的博客 5224

Eureka与 zookeeper 的区别、原理及各自优缺点

Eureka与 zookeeper 的区别、原理及各自优缺点 前言 在微服务的开发过程中,如果使用的是 Dubbo 那就必须使用到 Zookeeper ,在使用 Spring Cloud Eureka 时,自然其功能更强大得多。博主也不得不感叹,Spring Cloud Eureka 后来者居上呀,Dubbo 早在几年前停止了维护,在其停止了维护的几年里正是互联网发展的大好时期,Eureka 借机快速发展,夺得了一大片市场,可以说已经超越了 Dubbo 了,17年的时候,阿里巴巴又突然宣布重启对 Du.

u013733643的博客 1万+

001-基础入门-Web演示源码&资源&工具箱等

小迪安全2023笔记

wushangyu32335的博客 4258

MacOS多次踩坑后成功安装Homebrew

来一次性成功安装Homebrew吧 官网提供的安装脚本无法成功安装Homebrew,原因大家都懂的,故采用脚本安装的方式。 下载homebrew的安装脚本brew_install 在Download路径下执行如下脚本 curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install >> brew_install 修改brew_install脚本 修改brew_install脚本。如果你的脚本打开之后是如下

weixin_41847116的博客 1981

eureka与zookeeper的区别

在传统应用中,组件之间的调用,通过有规范的约束的接口来实现,从而实现不同模块间良好的协作。但是被拆分成微服务后,每个微服务实例的网络地址都可能动态变化,数量也会变化,使得原来硬编码的地址失去了作用。需要一个中心化的组件来进行服务的登记和管理。 一、eureka 1、本质:存储了每个客户端的注册信息。EurekaClient从EurekaServer同步获取服务注册列表。通过一定的规则选择一个服务进行调用。 2、Eureka构架图 3、详解 服务提供者:是一个Eureka Cient,向Eur.

hell21的博客 33万+

PPF函数可视化生产可能性边界线(R语言)

假设产品A的生产函数为A = 2 * R1 + R2,产品B的生产函数为B = R1 + 2 * R2,其中A和B分别表示产品A和产品B的产量,R1和R2表示资源1和资源2的分配数量。首先,让我们定义两种产品:产品A和产品B,它们的生产分别需要不同的资源和技术。现在我们已经计算了每种分配比例下的产品A和产品B的产量,接下来我们可以绘制生产可能性边界线。运行完整的代码后,我们将得到一个图形,显示了生产可能性边界线,该线代表经济体在给定资源和技术条件下所能生产的所有产品组合。

2301_79326559的博客 874

Zookeeper 和 Eureka 的区别

从以上比较来看,V哥认为,Zookeeper 和 Eureka 各有优势和适用场景,开发者需要根据具体的业务需求和系统特点来选择合适的服务发现框架。

威哥爱编程,华为 HDE,鸿蒙极客、优快云博客专家、《鸿蒙 HarmonyOS 5/6 开发之路》系列图书第一作者 793

rosbag分析传感器数据的时间同步情况方法

ROS传感器时间同步分析流程:通过rosbaginfo初步检查bag文件信息,使用rqt_bag可视化时间线分布,采用rostopicecho或Python脚本提取各传感器时间戳并计算时间差统计值(均值/最大差/标准差),最后分析接收与采样时间延迟。量化评估同步精度,识别固定偏移或随机抖动问题,确保多传感器数据对齐,为后续融合处理提供可靠数据基础。

start_up_go的博客 201

【AI应用实战-WorkBuddy】WorkBuddy 能帮你做什么(一)

文章摘要: WorkBuddy是一款AI工作助手,专为提升效率而设计,适用于经常处理文档、代码、数据分析等重复性任务的职场人士。它能通过自然语言交互快速完成五大核心场景任务: 周报撰写:输入工作要点,10分钟生成专业周报; 代码调试:解析报错信息,3分钟提供解决方案; Excel分析:自动计算数据趋势并生成图表和结论; 自动化脚本:将重复流程转为脚本,节省98%时间; 文档生成:根据代码自动补充README、API文档和注释。 效果对比:传统手动操作耗时1-3小时的任务,WorkBuddy可将时间缩短至10

346

Eureka与Zookeeper的区别

1、ZooKeeper概述        ZooKeeper是著名Hadoop的一个子项目,旨在解决大规模分布式应用场景下,服务协调同步(Coordinate Service)的问题。它可以为同在一个分布式系统中的其他服务提供:统一命名服务、配置管理、分布式锁服务、集群管理等功能)是个伟大的开源项目,它很成熟,有相当大的社区来支持它的发展,而且在生产环境得到了广泛的使用。      &nb

qq_27512271的博客 1014

Yolov8-pose关键点检测:loss优化 | LRM loss困难样本挖掘,提升难样本、遮挡物等检测精度

LRM loss应用到能够大幅提升pose遮挡物性能

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1714

5.eureka、zookeeper和consul三种注册中心之间的区别

这一章对前面介绍的三种注册中心做个总结。 一、三者对比 组件名 语言 CAP 服务健康检查 对外暴露接口 SpringCloud集成 Eureka Java AP 可配支持 HTTP 已集成 Consul Go CP 支持 HTTP/DNS 已集成 Zookeeper Java CP 支持 客户端 已集成 二、CAP理论补充 经典CAP理论图 可见: 最多只能同时较好的满足两个。 CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,.

臭小子的博客 905

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

spring-cloud-eureka和dubbox的zookeeper的区别

spring-cloud-eureka和dubbox的zookeeper的区别 用zookeeper来代替eureka

阿鹏 284

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Eureka:CAP原则及对比Zookeeper

回顾CAP原则: RDBMS:(Mysql,Oracle,Sql Server)==>ACID NOSQL:(Redis,MongDB)==>CAP ACID是什么? Atomicity:原子性 Consistency:一致性 Isolation:隔离性 Durability:持久性 CAP是什么? Consistency:强一致性 Availability:可用性 Partition tolerance:分区容错性 CAP的三进二:CA,AP,CP :也就是说C.

dingtianliang的专栏 686

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Eureka和ZooKeeper的区别

Eureka和ZooKeeper的区别:https://blog.youkuaiyun.com/java_xth/article/details/82621776 转载于:https://www.cnblogs.com/maigy/p/11566139.html

banghaoqs409152的博客 328

什么是注册中心?深入了解注册中心(Nacos,Eureka和Zookeeper),SpringCloud核心组件--注册中心讲解

注册中心是一个集中化的服务目录,用于管理微服务架构中所有服务的元数据信息(如服务名、IP 地址、端口号等)。服务提供者在启动时将自己的信息注册到注册中心,服务消费者通过查询注册中心获取服务提供者的信息,从而实现服务的动态发现和调用。 注册中心是SpringCloud核心组件之一,现在主流使用的是Nacos,也有一些在使用ZooKeeper和Eureka这两种。它用于实现服务的注册与发现。它的主要作用是解耦服务提供者和服务消费者之间的关系,使得服务消费者能够动态地发现和调用服务提供者。

TLOVEYOUTOO的博客 1480

从CAP理论角度分析Eureka和Zookeeper区别

从CAP理论角度分析Eureka和Zookeeper区别

weixin_41987908的博客 221

Eureka的工作原理

1、Eureka 简介: Eureka 是 Netflix 出品的用于实现服务注册和发现的工具。 Spring Cloud 集成了 Eureka,并提供了开箱即用的支持。其中, Eureka 又可细分为 Eureka Server 和 Eureka Client。 1.基本原理 上图是来自eureka的官方架构图,这是基于集群配置的eureka; - 处于不同节点的eureka通过Replicate进行数据同步 - Application Service为服务提供者 - Applicatio.

Daniel462038751的专栏 1070

Eureka,Zookeeper,Consul 区别

Eureka,Zookeeper,Consul 区别 CAP C(强一致性) A(可用性) P(分区容错性) CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求, 因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类: CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。 CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。 AP - 满足可用性,分区容忍性的系统,通常可能对一致

沉鱼一梦的博客 371

《Spring Cloud Netflix》 -- 服务注册和服务发现-Eureka 的使用

Spring Cloud为基于JVM的云应用开发中的服务发现、负载均衡、断路器、智能路由、配置管理、控制总线等等操作提供了一种简单、快捷的开发方式。

wsr2014的博客 814

【SpringCloud微服务】- Eureka服务注册与服务发现Discovery

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。和。在应用启动后,将会向EurekaServer发送心跳,默认周期为30秒,如果EurekaServer在多个心跳周期内没有接收到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除。...

1+1=王的博客 7557

服务注册发现nacos、eureka、zookeeper、consul的区别

一张图看懂服务注册与发现nacos、eureka、zookeeper、consul的区别:

qq_42014561的博客 268

SpringCloud笔记

1.什么是SpringCloud? 2.SpringCloud的优势?和Dubbo对比 3.Spring cloud 和Dubbo的区别? 4.Spring cloud和Spring boot的区别? 5.Spring cloud如何实现负载均衡? 6.Spring cloud如何实现容错? 7.Spring cloud如何实现服务注册、服务发现、Eureka工作原理? 8.ribbon和feig...

weixin_41047933的博客 282
上一篇: CurrentHashMap线程安全
下一篇: 强烈建议用枚举实现单例模式
番茄鸡蛋挂面
博客等级 码龄9年 14粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值