分布式事务:X/Open DTP模型

事务的特征

  • Atomic:原子性,事务必须是一个原子的工作单元,要么全部成功,要么全部失败
  • Consistent:一致性,事务完成时必须使所有的数据保持一致状态。
  • Isolation:隔离性,并发事务所做的修改必须与其他事务所做的修改是隔离的。
  • Duration:持久性,事务完成后对系统的影响是永久性的。

分布式事务的由来

随着系统用户和数据的增加,原先的单体应用的程序架构向着SOA或者微服务的架构发展,数据库也会有分库分表等操作来提高效率

单体应用
分布式事务:X/Open DTP模型

单体应用只有一个操作的数据库,完全可以直接依赖数据库的ACID特性和应用的事务管理来保证事务的执行,数据的一致性。

分布式应用

分布式事务:X/Open DTP模型

分布式应用中每个模块的应用都对应一个数据库时候,事务管理已经跨应用了,如上图,加入张三下单买东西,要在用户中心添加订单记录,订单中心要去删减库存,对一个整体的应用而言这是一个原子操作,要么两个操作全部成功要么全部失败,来保证数据的一致性。

X/Open DTP事务模型

X/Open DTP 全称 X/Open Distributed Transaction Processing Reference是X/Open这个组织定义出的一套分布式事务标准

分布式事务:X/Open DTP模型

X/Open DTP中的角色
  • AP(Application Program):应用程序,主要是定义事务边界以及那些组成事务的特定于应用程序的操作。
  • EM(Resouces Manager):资源管理器,管理一些共享资源的自治域,如提供对诸如数据库之类的共享资源的访问。
  • TM(Transaction Manager):事务管理器,管理全局事务,协调事务的提交或者回滚,并协调故障恢复。

DTP模型执行流程

  • 第一步:AP使用一组来自RM的资源
  • 第二步:AP通过TM接口定义事务的边界
  • 第三步:TM和RM交换事务信息

我的博客