【分布式系统设计】谈谈ACID理论和CP架构:追求一致性

本文探讨了数据一致性在IT技术中的重要性,特别是CP架构如何在分布式系统中保证一致性,以及两阶段提交协议(2PC)的原理和局限性。文章还提到了ACID理论和分布式一致性解决方案的发展,如TCC和XA接口的应用。

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

CP v.s.ACID: CP和ACID都是为了保证数据一致性。但是两者解决的问题不一样:CP描述的是在发生网络分区时,保证数据一致性。ACID解决的是多个事务并发下,保证数据一致性。

ACID理论

ACID理论是对事务特性的抽象和总结,用过传统关系型数据库的小伙伴一定对它不陌生。

  • 原子性:事务中所包含的所有操作要么全部成功,要么全部失败回滚

  • 一致性:事务操作前和操作后,保持约束一致性、数据一致性。

    • 第一层意思:数据库内部的完整性,包含实体完整性、域完整性、参照完整性、用户自定义完整性。使用外键、检查约束等,来保证事务执行中不会产生违背数据完整性的数据。例如:使用唯一约束的列不会出现两个一样的值。
    • 第二层意思:对开发者的要求,数据库中的每一行和每个值必须与其所描述的现实保持一致。例如:银行转账,不能只一方扣钱或者一方加钱,我们的代码应该是,一方加钱一方扣钱。
  • 隔离性:数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致

  • 持久性:事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

实际上, ACID中的原子性、隔离性和持久性都是为了一致性服务的,可以说一致性(强一致性)才是ACID的目的。其中,原子性和持久性都是通

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值