XA 分布式事务
XA 分布式事务
基于第一个强一致的思路,就有了基于数据库本身支持的协议,XA 分布式事务。
XA 整体设计思路可以概括为,如何在现有事务模型上微调扩展,实现分布式事务。
X/Open,即现在的 open group,是一个独立的组织,主要负责制定各种行业技术标准。X/Open 组织主要由各大知名公司或者厂商进行支持,这些组织不光遵循 X/Open 组织定义的行业技术标准,也参与到标准的制定。
应用程序(Application Program ,简称 AP):用于定义事务边界(即定义事务的开始和结束),并且在事务边界内对资源进行操作。
资源管理器(Resource Manager,简称 RM):如数据库、文件系统等,并提供访问资源的方式事务管理器(Transaction Manager ,简称 TM):负责分配事务唯一标识,监控事务的执行进度,并负责事务
的提交、回滚等。
XA 接口
xa_start :负责开启或者恢复一个事务分支。
xa_end: 负责取消当前线程与事务分支的关联。
xa_prepare:询问 RM 是否准备好提交事务分支。
xa_commit:通知 RM 提交事务分支。
xa_rollback: 通知 RM 回滚事务分支。
xa_recover : 需要恢复的 XA 事务。
MySQL 从 5.0.3 开始支持 InnoDB 引擎的 XA 分布式事务,MySQL Connector/J 从 5.0.0 版本开始支持 XA。
在 DTP 模型中,MySQL 属于资源管理器(RM)。分布式事务中存在多个 RM,由事务管理器 TM 来统一进行协调。
版权声明: 本文为 InfoQ 作者【风翱】的原创文章。
原文链接:【http://xie.infoq.cn/article/46db0bde699933649b1385171】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论