第七章 XA 强一致性分布式事务原理
第七章 XA 强一致性分布式事务原理
一、X/Open DTP 模型与 XA 规范
X/Open DTP 模型是 X/Open 组织定义的分布式事务标准规范,这个规范定义了分布式事务处理的一套规范和 API,具体的实现由各厂商负责。本节对 X/Open DTP 模型与 XA 规范进行简单介绍
1.DTP 模型
DTP模型主要定义了 3 个核心组件,分别是应用程序、资源管理器和事务管理器,三者之间的关系如下图所示:

-
应用程序用于定义事务边界,即定义事务的开始和结束, 并且在事务边界内对资源进行操作
-
资源管理器也称为事务参与者,如数据库、文件系统等,并提供访问资源的方式
-
事务管理器也称为事务协调者,负责分配事务唯一标识,监控事务的执行进度,并负责事务的提交、回滚等操作
2.XA 规范
下面简要介绍 XA 规范:
1、 xa_start:负责开启或恢复一个事务分支,并且管理XID到调用线程;
2、 xa_end:负责取消当前线程与事务分支的关联;
3、 xa_prepare:负责询问资源管理器是否准备好提交事务分支;
4、 xa_commit:负责通知资源管理器提交事务分支;
5、 xa_rollback:负责通知资源管理器回滚事务分支;
6、 xa_revocer:负责列出需要恢复的XA事务分支;
3.JTA 规范
JTA(Java Transaction API)为 J2EE 平台提供了分布式事务服务的能力。JTA 规范是 XA 规范的 Java 版,即把 XA 规范中规定的 DTP 模型交互接口抽象成 Java 接口中的方法,并规定每个方法要实现什么样的功能,其架构如下图所示:
