事务的特征
- Atomic:原子性,事务必须是一个原子的工作单元,要么全部成功,要么全部失败
- Consistent:一致性,事务完成时必须使所有的数据保持一致状态。
- Isolation:隔离性,并发事务所做的修改必须与其他事务所做的修改是隔离的。
- Duration:持久性,事务完成后对系统的影响是永久性的。
分布式事务的由来
随着系统用户和数据的增加,原先的单体应用的程序架构向着SOA或者微服务的架构发展,数据库也会有分库分表等操作来提高效率
单体应用
单体应用只有一个操作的数据库,完全可以直接依赖数据库的ACID特性和应用的事务管理来保证事务的执行,数据的一致性。
分布式应用
分布式应用中每个模块的应用都对应一个数据库时候,事务管理已经跨应用了,如上图,加入张三下单买东西,要在用户中心添加订单记录,订单中心要去删减库存,对一个整体的应用而言这是一个原子操作,要么两个操作全部成功要么全部失败,来保证数据的一致性。
X/Open DTP事务模型
X/Open DTP 全称 X/Open Distributed Transaction Processing Reference
是X/Open这个组织定义出的一套分布式事务标准
X/Open DTP中的角色
- AP(Application Program):应用程序,主要是定义事务边界以及那些组成事务的特定于应用程序的操作。
- EM(Resouces Manager):资源管理器,管理一些共享资源的自治域,如提供对诸如数据库之类的共享资源的访问。
- TM(Transaction Manager):事务管理器,管理全局事务,协调事务的提交或者回滚,并协调故障恢复。
DTP模型执行流程
- 第一步:AP使用一组来自RM的资源
- 第二步:AP通过TM接口定义事务的边界
- 第三步:TM和RM交换事务信息