分布式事务

分布式事务解决方案

1. TCC (Try, Confirm, Cancel)    实时

2. 消息最终一致性                   异步

3. 最大努力通知型事务(按规律进行通知,不保证数据一定能通知成功,但会提供可查询操作接口进行核对)

支付宝程立谈分布式事务

事务:一组可靠、独立的工作单元

ACID:Atomicity(原子性)  Consistency(一致性)  Isolation(隔离性)  Durability(持久性)

难点: 高度并发,资源分布,大时间跨度


本地事务:事务由资源管理器(如:DBMS)本地管理

优点:支持严格的ACID属性,可靠,高效,状态可只在资源管理器维护

局限:不具备分布事务处理能力,隔离的最小单元由资源管理器决定,如数据库中的一条数据


全局事务(DTP模型):事务由全局事务管理器全局管理

事务管理器:管理全局事务状态与参与的资源,协同资源的一致提交/回滚

TX协议:应用或应用服务器与事务管理器的接口

XA协议:全局事务管理器与资源管理器的接口


两阶段提交(Two Phase Commit)

准备操作与ACID : A准备后,仍可提交和回滚  C准备时,一致性检查必须OK

                I准备后,事务结果仍然只在事务内可见    D准备后,事务结果已经持久化

局限:协议成本(准备操作是一定必须的吗)

          准备阶段的持久成本

          全局事务的持久成本

          潜在故障点多带来的脆弱性

          准备后,提交前的故障引发一系列隔离与恢复难题


跨域的全局事务(DTP模型)

问题:1. 事务上下文如何跨域传递

           2. 多事务管理器如何协同

           3. 异构事务域间的标准是什么

通信资源管理器:管理事务域间与事务域内的通信,允许全局事务跨域传递

XA+协议:是XA的超集,增加指令使事务管理器间可以相互协同

局限:更高协议成本、脆弱,故障点多,故障影响大,恢复困难,复杂,更多框架与平台约束


原则:真正重要的是满足业务需求,而不是追求抽象、绝对的系统特性

帽子戏法:两只手最多能拿几顶帽子?

酸碱平衡:ACID-BASE Balance

服务模式:可查询模式、幕等模式、TCC操作、可补偿模式

复合模式:定期校对、可靠消息、TCC、补偿

帽子戏法--CAP定理:对于共享数据系统,只能同时拥有一下三项中的两个

a. Consistency(一致性):所有用户看到一致的数据

b. Availability(可用性):总能找到一个可用的数据副本

c. Tolerance to Network Partition(分区容忍性): 即使在系统被分区的情况下,仍能满足上述的2点

酸碱平衡--BASE:Basic Availability(基本可用性)   Soft state(柔性状态)   Eventtuall consistency(最终一致性)



spring事务

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容