分布式事务与 Seate 框架:分布式事务理论,Java 知识总结

本文深入探讨了分布式事务的理论基础,包括CAP定理、BASE理论和二阶段、三阶段提交协议。重点讲解了TCC、基于MQ的最终一致性以及Seata框架的AT和Saga模式。Seata的AT模式类似于2PC但做了优化,而Saga模式通过补偿机制处理长事务。分布式事务解决方案旨在在保证系统可用性的同时,实现数据的最终一致性。
摘要由CSDN通过智能技术生成

第一阶段:CanCommit(询问阶段):事务协调者向参与者发送事务执行请求,询问是否可以完成指令,参与者只需要回答是或者不是,会有超时机制;

** 第二阶段:PreComiit(准备阶段)**:事务协调者会根据参与者的反馈结果决定是否继续执行,如果在第一个阶段 CanCommit 都收到了请求的话,就开始执行写 redo 和 undo 日志,并且返回 ACK 给协调者,这里即是二阶段提交的第一阶段。

第三阶段:DoCommit(提交或回滚阶段):如果在第二阶段 PreCommit 提交成功以后,那么事务协调者会向所有的参与者发起事务提交指令,如果其中某个参与者返回失败,则执行终止指令回滚事务。

相比较二阶段提交协议,三阶段提交协议有以下不同:

1)增加了 CanCommit 阶段:可以尽早发现参与者无法执行的情况,及时中断;

2)增加了超时机制:参与者与事务协调者都引入了超时机制,一旦超时,事务协调者和参与者会继续提交事务,并且任务处于成功状态(因为在这种情况下事务默认为成功的可能性比较大),事实上,第三阶段提交协议下仍然可能出现不一致的情况(但是概率很小)

4.CAP 理论和 BASE 理论


1)CAP 定理**

CAP 定理,又称布鲁尔定理,简单来说就是指在分布式系统中不可能同时满足一致性(C:Consistency)、可用性(A:Availability)、分区容错性(P: Partition Tolerance)

C:数据在多个副本中保持一致,比如前面说的分布式数据一致性问题

A:系统对外提供的服务必须一直处于可用状态;

P:在分布式中遇到任何网络分区故障,系统仍然能够正常对外提供服务。

CAP 定理证明,在分布式系统中,要么满足 CP、要么满足 AP。不可能实现 CAP 或者 CA,原因是网络通信并不是绝对可靠的。而在分布式系统中即便出现网络故障也需要保证系统仍然能够正常对外提供服务,Partition Tolerance 是必然存在的,所以 P 是一定会有的,只有 C 与 A 不能同时兼得

AP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值