赞
踩
事务:逻辑上的一组操作,组成这组操作的各个逻辑单元,要么都成功,要么都失败。
四大特征:ACID
并发问题:脏读、不可重复读、幻读
隔离级别:RU(Read Uncommitted)、RC(Read Committed)、RR(Repeatable Read)、SI(Serializable)
CAP理论是分布式系统设计中的一个重要理论,由Eric Brewer教授在2000年提出,并在2003年由MIT的Gilbert和Lynch正式证明。CAP理论指出,在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)这三个特性不能同时成立,即在设计分布式系统时,通常需要在这三个特性之间做出权衡。
♣ 实际应用中无法同时满足CAP,要么满足AP(SpringCloud Mysql Redis),要么满足CP。
CAP理论是分布式系统设计中的一个重要理论,由Eric Brewer教授在2000年提出,并在2003年由MIT的Gilbert和Lynch正式证明。CAP理论指出,在分布式系统中,一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)这三个特性不能同时成立,即在设计分布式系统时,通常需要在这三个特性之间做出权衡。
由于CAP理论指出分布式系统无法同时满足这三个特性,因此在设计系统时通常需要在它们之间做出权衡。常见的权衡方案包括:
CAP理论的应用场景非常广泛,几乎涵盖了所有需要分布式系统支持的领域。例如:
CAP理论告诉我们,在设计分布式系统时,需要根据具体的应用场景和需求来权衡一致性、可用性和分区容错性这三个特性。没有一种方案能够同时满足所有需求,因此需要根据实际情况做出合适的选择。同时,CAP理论也促进了分布式系统领域的发展和创新,推动了更多优秀分布式系统的出现。
♣ 保证核心业务可用,允许中间状态的出现,只要数据最终一致。
一致性和可用性
权衡的结果。CAP理论指出,一个分布式系统不可能同时满足一致性、可用性和分区容错性三个特性,而BASE理论则通过放宽一致性要求(采用最终一致性),来换取更高的可用性和灵活性。综上所述,BASE理论为分布式系统设计提供了一种新的思路和方法,它强调在分布式系统中实现高可用性、灵活性和实时性的重要性,并通过放宽一致性要求来换取这些目标。
2PC:
2代表两个阶段
P:代表第一个阶段,Prepare准备阶段
C:代表第二个阶段,Commit提交阶段
♣关系型数据库有基于2PC的XA协议:主流的关系型数据都实现了该协议。
缺点:
1.免费开源的数据库支持不够完善。
2.需要多次网络通信,所以效率不高
TCC(Try-Confirm-Cancel)事务:编程式分布式事务解决方案
TCC事务分为三个阶段:Try、Confirm、Canel。
Try阶段:预检资源并锁定资源,尝试执行,完成所有业务检查(一致性),预留必须业务资源(准隔离性)。
Confirm阶段:执行业务操作,确认执行真正执行业务,不作任何业务检查,只使用Try阶段预留的业务资源,Confirm操作要求具备幂等设计,Confirm失败后需要进行重试。
Cancel阶段:取消事务或者补偿性事务,取消执行,释放Try阶段预留的业务资源。
缺点:
1.代码量大
2.业务逻辑复杂的情况下,很难把握补偿点
3.幂等性很难保证
MQ(本地消息表)最终一致性:
本地消息表的核心思想是将分布式事务拆分成本地事务进行处理。消息生产方需要额外建一个消息表,并记录消息发送状态。消息表和业务数据要在一个事务里提交,消息会经过消息队列发送到消息的消费方。
特点:
避免了分布式事务,实现了最终一致性。
消息表会耦合到业务系统中,处理逻辑较为复杂。
性能:MQ > TCC > 2PC
可靠性:2PC > TCC > MQ
简易:2PC > MQ > TCC
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。