侧边栏壁纸
博主头像
码森林博主等级

一起走进码森林,享受编程的乐趣,发现科技的魅力,创造智能的未来!

  • 累计撰写 145 篇文章
  • 累计创建 73 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

分布式事务 | DTP 模型

码森林
2022-06-09 / 0 评论 / 0 点赞 / 467 阅读 / 892 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-06-09,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

DTP 模型

DTP 模型是 X/Open 组织定义的一套分布式事务标准,其实主要定义了实现分布式事务的规范和 API,具体的实现由相应的厂商来实现。

X/Open 组织

X/Open国际联盟有限公司是一个欧洲基金会,它的建立是为了向UNIX环境提供标准。它主要的目标是促进对UNIX语言、接口、网络和应用的开放式系统开放式系统)协议的制定。

核心概念

  • 事务:一个事务就是一个完整的工作单元,具备 ACID 特性。
  • 全局事务:由事务管理器管理的事务,能够一次性操作多个资源管理器。
  • 分支事务:由事务管理器管理的全局事务中,每个资源服务器中的独立执行的事务。
  • 控制线程:执行全局事务的线程,这个线程用来关联应用程序、事务管理器和资源管理器的关系,也就是表示全局事务和分支事务的关系,通常称为事务上下文环境。

执行流程

分布式事务-DTP模型

在 DTP 模型中,主要定义了3个核心组件,分别为 AP、TM、RM。

  • AP:应用程序(Application Program),可以理解为参与 DTP 分布式事务模型的应用程序,用于定义事务边界,即定义事务的开始和结束,并且在事务边界内对资源进行操作。
  • RM:资源管理器(Resource Manager),也称为事务参与者,可以理解为数据库、文件系统、消息服务管理系统等。应用程序可以通过资源管理器对相应资源进行有效的控制,相应的资源需要实现 XA 定义的接口,并提供访问资源的方式。
  • TM:事务管理器(Transaction Manager),也称为事务协调者,负责协调和管理 DTP 模型中的事务,负责分配事务唯一标志,监控事务的执行进度,并负责事务的提交、回滚等操作,为应用程序提供接口,同时管理资源管理器。

其中, AP 可以和 TM、RM 通信,TM 和 RM 之间可以互相通信,DTP 模型定义了 XA 接口,TM 和 RM 可以通过 XA 接口进行双向通信。TM 控制着全局事务,管理事务的生命周期并协调资源。RM 控制和管理实际的资源。

XA

XA 就是 X/Open DTP 定义的交易中间件与数据库之间的接口规范(即接口函数),交易中间件用它来通知数据库事务的开始、结束以及提交、回滚等。 XA 接口函数由数据库厂商提供。

  • xa_start:负责开启或恢复一个事务分支,并且管理 XID 到调用线程。
  • xa_end:负责取消当前线程与事务分支的关联。
  • xa_prepare:负责询问资源管理器是否准备好提交事务分支。
  • xa_commit:负责通知资源管理器提交事务分支。
  • xa_rollback:负责通知资源管理器回滚事务分支。
  • xa_recover:负责列出需要恢复的 XA 事务分支。
0

评论区