首页/系统与基础设施/存储速查/存储一致性模型与读写顺序保证
存储基础与选型50 条

存储一致性模型与读写顺序保证

强一致保证写入完成后任何副本的读取都返回最新值;最终一致允许多副本之间存在短暂差异,只要停止写入后最终收敛。两者影响的是读写延迟、可用性与应用复杂度,选择依据是业务能否容忍读到旧数据。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌​‌​‌‌‌​‌‌​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌‌​​‌‌​‌‌‌​‌​‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌​​‌​‌​‌‌‌​‌‌​​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌‌​‌​​​‌‌‌​‌​‌​‌‌​​​​‌​‌‌​‌‌​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌‌​​‌‌​‌‌​‌​​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌​​​‌‌​‌‌‌‌​​‌​​‌​‌‌​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

一致性模型解决什么问题

多副本存储要在「读写立即可见」与「系统始终可写」之间取舍。强一致要求写入被确认后,任何节点的读取都返回该值,实现方式通常是多数派写或同步复制,代价是写路径需要等待足够多的副本确认,延迟更高,且当可用副本不足时会拒绝写入。最终一致则允许副本之间短暂不一致,写入先在局部生效再异步传播,代价是不同节点可能读到旧值,甚至出现读到「更旧」数据的现象。实践中的多数系统处于两者之间,例如提供读己之写、单调读或按会话保证,这些折中能覆盖大部分业务需求,同时保留更高的可用性。

模型对照

维度强一致最终一致
写入确认需多数或全部副本确认主副本确认即可返回
读取新鲜度任何节点读到最新值可能读到旧值,收敛有延迟
延迟较高,受最慢副本影响较低,路径更短
分区容忍副本不足时可能拒绝写通常保持可写
应用复杂度较低,按单副本思维开发需处理旧读、冲突与重试

基本信息

强一致前提多数派可用,网络延迟稳定
最终一致收敛条件写入停止后副本最终同步到相同状态
常见折中读己之写、单调读、会话一致性
应用补偿幂等写入、版本号或时间戳判新旧、冲突解决策略
选择依据业务能否容忍读到旧数据,以及可用性与延迟目标

典型使用场景

  • 账务与库存等强一致诉求:写入确认后必须立即对所有读取可见
  • 跨站点双活:多数派复制影响延迟,需评估链路时延与站点数量
  • 内容分发与静态资源:最终一致即可,换取更低延迟与更高可用性
  • 社交动态与推荐:短暂陈旧可接受,优先保证可写与响应速度
  • 跨地域备份与对象复制:异步复制为主,需明确恢复点目标
一致性级别常可按请求设置:同一套系统里,关键操作走强一致、浏览类操作走最终一致,是兼顾体验与成本的常见做法。配置前需确认实现是否真正支持该级别,而非仅在接口上标注。
把最终一致当成「几乎一致」是常见误区:网络分区或复制延迟高时,差窗可能持续较长时间。涉及金额、额度与状态机的业务若使用最终一致,必须在应用层设计冲突检测与人工兜底。

易错点

  • 默认所有系统强一致:跨站点部署后延迟不可接受,或分区时拒绝写入
  • 应用不做幂等:异步复制下的重试产生重复写入与重复扣减
  • 用时间戳判新旧不可靠:多节点时钟偏差会导致错误覆盖,应使用版本号等逻辑手段
  • 忽略复制延迟的极端值:平均延迟正常不代表高峰时段不会出现长时间差窗
  • 不做故障演练:分区与副本不足场景下的行为未经验证,实际发生时影响面超出预期

数据来源与参考

  • 分布式系统一致性模型相关学术与标准资料
  • 对象存储与分布式数据库厂商一致性说明文档

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/storage/strong-versus-eventual-consistency-storage.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌​‌​‌‌‌​‌‌​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌‌​​‌‌​‌‌‌​‌​‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌​​‌​‌​‌‌‌​‌‌​​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌‌​‌​​​‌‌‌​‌​‌​‌‌​​​​‌​‌‌​‌‌​​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​‌‌‌​​‌‌​‌‌​‌​​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌​​​‌‌​‌‌‌‌​​‌​​‌​‌‌​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​