etcd的强一致性和redis的最终一致性都是如何实现的?

分布式锁实战-偶遇 etcd 后就想抛弃 Redis ? 1. etcd 的背景虽然Kubernetes 给云原生时代带来了颠覆性的新气象,但却很少人了解被钦定作为其后端存储的 etcd ,本篇从分布式锁视角梳理etcd的各种机制,探索基于etcd的锁实现是怎样。etcd 能被Kubernetes 如此青睐,是因为它一直在聆听社区的声音并快速改进,积极配合 Kubernetes 项目向前推进,解决社区反馈的痛点; 阅读详情

etcd 的强一致性和 Redis 的最终一致性在实现机制上有本质区别,这源于两者的设计目标和底层算法的差异。以下分别解析它们的实现原理:

一、etcd 强一致性的实现:基于 Raft 算法

etcd 为了保证分布式环境下的数据强一致性(所有节点对数据的视图完全一致),采用了 Raft 一致性算法,核心机制包括:

1. 角色划分与 Leader 选举

  • Raft 集群中每个节点有三种角色:
    • Leader:唯一处理写请求的节点,负责向 Follower 同步数据。
    • Follower:被动接收 Leader 的数据同步,参与投票选举。
    • Candidate:当 Leader 故障时,节点转为 Candidate 发起选举。
  • 选举过程:
    • 集群启动或 Leader 故障后,节点超时未收到 Leader 心跳,转为 Candidate 并向其他节点发送投票请求。
    • 获得多数节点(超过半数)投票的 Candidate 成为新 Leader。
    • 选举结果确保集群始终有且仅有一个 Leader(避免“脑裂”)。

2. 数据写入与日志复制

  • 所有写请求必须先发送到 Leader 节点。
  • Leader 将数据封装为“日志条目”,追加到本地日志(持久化到磁盘)。
  • Leader 向所有 Follower 同步日志条目,等待 Follower 确认(AppendEntries 消息)。
  • 当 超过半数 Follower 成功写入日志 后
etcd对比redis etcd和Redis是两种不同的键值存储系统:etcd专注于分布式系统的一致性和可靠性,采用Raft算法实现强一致性,适合配置存储和服务发现;Redis则以高性能和丰富数据结构见长,支持缓存、消息队列等场景。主要区别在于etcd保证强一致性和高可用性但性能较低,Redis提供最终一致性和极高吞吐量。选择依据:需要强一致性和协调功能选etcd,追求性能和灵活数据结构选Redis。两者常在实际系统中配合使用。 阅读详情

相关推荐

ETCD介绍—etcd概念及原理方面分析

etcd作为一个受到ZooKeeper与doozer启发而催生的项目,除了拥有与之类似的功能外,更专注于以下四点。 简单:基于HTTP+JSON的API让你用curl就可以轻松使用。 安全:可选SSL客户认证机制。 快速:每个实例每秒支持一千次写操作。 可信:使用Raft算法充分实现了分布式。 分布式系统中的数据分为控制数据和应用数据。etcd的使用场景默认处理的数据都是控制数据,对于应用数据,只推荐数据量很小,但是更新访问频繁的情况。应用场景有如下几类:场景一:服务发现(Service Disco

Linuxhus的博客 2万+

分布式锁演进史:从Redis到ZooKeeper再到ETCD的选型指南

当服务扩容到三台机器后,悲剧发生了:100件库存卖出了150单。这就像三家分店共用一本库存本,每家都以为自己卖的是最后一件商品。当架构师争论选型时,不妨问:“我们需要的是自行车锁、房门锁还是金库锁?ZK运维成本高(需搭配Observer节点)Redis方案成熟(Spring集成完善)ETCD云原生友好(K8s原生支持)Redis像摩托车(快但不安全)ETCD像汽车(平衡可靠与速度)ZK像高铁(强保障但需专用轨道)Redis部署简单(3节点够用)ETCD需调优(内存/磁盘配额)早年间做促销活动时,我们用。

caishuangxi111的博客 1266

手把手教你构建轻量级CLIP模型:从理论到实践

本文手把手教你从零构建一个轻量级CLIP模型,深入解析其核心原理——对比学习,并提供完整的代码实践。通过精简的模型架构、数据准备和训练循环实现,帮助读者彻底理解多模态模型如何让图像与文本在共享空间中对齐,为学习更复杂的AI模型打下坚实基础。

weixin_29100927的博客 324

从Zemax到Speos:HUD设计数据无缝迁移避坑指南(含STEP文件精度验证)

本文详细介绍了从Zemax到Speos的HUD设计数据无缝迁移方法,重点解决Zernike曲面参数保真、虚拟厚度设置和坐标系对齐等核心问题。通过STEP文件精度验证和工程化解决方案,帮助工程师避免数据迁移中的常见陷阱,提升HUD系统设计效率。适用于Ansys Zemax和Ansys Speos用户,优化光学性能验证流程。

h6i7j8的博客 1063

别再只调陀螺仪了!用OpenCV实现基于透视变换的EIS防抖,实测效果媲美手机

本文深入探讨了基于透视变换的EIS电子稳像技术,通过OpenCV实现高阶防抖算法,效果媲美主流手机厂商方案。详细解析了传统旋转平移模型的局限性,并展示了透视变换在复杂场景下的优势,包括数学原理、OpenCV实战代码及性能优化技巧,为视频防抖提供了专业解决方案。

weixin_42613501的博客 449

从X86到ARM:全面解析服务器CPU架构的演变与未来趋势

本文深入解析了服务器CPU架构从X86到ARM的演变历程与未来趋势。文章从CISC与RISC两种设计哲学切入,分析了X86凭借生态建立的帝国地位及其面临的功耗挑战,并重点阐述了ARM架构凭借其卓越的能效比优势,正从移动端向数据中心市场发起冲击。未来,异构计算、软硬协同与专用芯片将成为服务器CPU发展的核心方向。

gold的博客 1126

Trae的付费之路还挺艰难,茫茫多的人想付付不了(附解决办法)

不得不说,Trae国际版这个付费其实整的挺复杂的,但没办法,毕竟有政策限制,付费成功后,你就是尊贵的Pro用户啦,使用Claude 4不排队还是挺爽的,而且600次其实不算少了,有一个小技巧,简单的问题就把模型切到Gemini-2.5-flag,因为使用这个模型是没有次数限制的。其次付费的时候有个ZIP Code,这东西也是个迷之存在,有的地区节点需要填,有的不需要,如果你选到了不需要填的节点,那很好,付费就行了,如果需要填,可以填一个51800试试。

cpp加油站的专栏 5877

华为OD机试新系统真题【终端设备档位差异统计】

华为OD机试 新系统真题【终端设备档位差异统计】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【终端设备档位差异统计】多语言题解。

qq_45776114的博客 781

AWR1843+DCA1000通过mmwave studio采集数据遇到的问题及解决方法

确保DCA1000的拨钮拨在了RADAR_5V_IN一边,这代表DCA1000通过与其相连的雷达板子供电,如果拨到了DC_JACK5V_IN一边,表示DCA1000用单独的电源供电。

qq_50974341的博客 4163

微信小程序 - 解决报错 {“errcode“:41002,“errmsg“:“appid missing, rid: X“} 微信报错错误码errcode“:41002问题分析及解决教程(详细排查)

【微信小程序】报错{“errcode“:41002,“errmsg“:“appid missing, rid: 64e55770-67c1fb7e-027c5a70“}:【微信小程序】微信小程序登录请求出现appid missing提示,微信公众号{"errcode":41002,"errmsg":"appid missing"},微信 报错{“errcode“:41002,“errmsg“:“appid missing,微信小程序获取openid返回appid missing的问题,微信小程序提示Erro

🏆 前端领域优质创作者 5647

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

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

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: 强一致性和最终一致性
下一篇: Apisix插件之api-breaker
程序员小辉辉
博客等级 码龄5年 825粉丝 182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值