分布式事务

本地事务————操作单一数据库————数据库支持提供

分布式事务————一个业务横跨多个服务,操作多个数据库————保证不同资源服务器的数据一致性

典型分布式事务场景:

1.跨库事务:某个功能需要操作多个库

2.分库分表: 一个库数据量比较大或预期未来数据量比较大,进行水平拆分,也就是分库分表。(保证两个库要不都成功,要不都失败)

      数据库中渐渐都面临分布式事务问题。

3.服务化(SOA)  微服务框架  业务复杂  既考虑事务又要考虑性能

          保证微服务对多个数据库的操作要不都成功,要不都失败。

解决方法:X/open  DTP模型与XA规范

一.DTP模型

  1.构成DTP模型的五个基本元素:应用程序(Application Progeam,简称AP)

                资源管理器(Resource  Manager,简称RM)

                事务管理器(Transaction Manager,简称TM)

                通信资源管理器(Commurication Resoutce Manager,简称CRM)

                通信协议(Communication Protocol,简称cp)

  2.模型实例

    一个DTP模型实例,至少有三个部分:AP、RMS、TM

    服务化事务DTP模型:

    解决方案:每个模型中,额外加入一个通信资源管理器CRM。

    两个模型采用同一个事务管理器(TM)

    CRM:具备基本通信能力,具备事务传播能力

全局事务树形结构,当一个TM中有在多模型实例时,会形成一种树形调用关系。

  发起事务的模型实例称之为root节点或事务发起者

  其他模型——事务参与者——执行自己的事务分支

  按模型调用关系分:调用方——上有节点    被调用方——下游节点

原文地址:https://www.cnblogs.com/lenlen/p/10114689.html