CAP理论,BASE理论和ACID模型

本文介绍了数据一致性的基础理论,包括强一致性、弱一致性及最终一致性。接着详细阐述了ACID模型,以及CAP理论,指出分布式系统必须在一致性、可用性和分区容错性之间做出权衡。最后提到了BASE理论,它允许系统在牺牲强一致性的情况下保证最终一致性。文中还讨论了分布式事务的一致性处理方案,如使用消息队列和主从复制策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础理论

先简单介绍下数据一致性的基础理论。

  • 强一致 
    当更新操作完成之后,任何多个后续进程或者线程的访问都会返回最新的更新过的值。这种是对用户最友好的,就是用户上一次写什么,下一次就保证能读到什么。根据 CAP 理论,这种实现需要牺牲可用性。

  • 弱一致性 
    系统并不保证续进程或者线程的访问都会返回最新的更新过的值。系统在数据写入成功之后,不承诺立即可以读到最新写入的值,也不会具体的承诺多久之后可以读到。

  • 最终一致性 
    弱一致性的特定形式。系统保证在没有后续更新的前提下,系统能最终返回上一次更新操作的值。在没有故障发生的前提下,不一致窗口的时间主要受通信延迟,系统负载和复制副本的个数影响。DNS 是一个典型的最终一致性系统。

ACID模型

ACID是传统数据库常用的设计理念,追求强一致性模型。 
关系数据库的ACID模型拥有 高一致性 + 可用性 很难进行分区: 
Atomicity 原子性:一个事务中所有操作都必须全部完成,要么全部不完成。 
Consistency 一致性: 在事务开始或结束时,数据库应该在一致状态。 
Isolation 隔离性: 事务将假定只有它自己在操作数据库,彼此不知晓。 
Durability 持久性:一旦事务完成,更新就是持久性的,无论断电或者宕机数据都不会丢失。

ACID模型要求一个事物必须满足上面的四点,这是对关系型传统数据库的指导性依据。而非关系型数据库NoSql则不再依赖这一模型。

CAP理论

2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值