`
nelson_tu
  • 浏览: 38738 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

XA和分布式事务处理

 
阅读更多

1、分布式事务处理(DTP)模型
应用程序(AP)
事务管理器(TM):交易中间件
资源管理器(RM):通常是数据库
通信资源管理器(CRM):消息中间件
2、事务处理
本地事务:一个数据库内部的事务处理,如对多个表的操作
全局事务:DTP环境中的多个数据库的事务处理
3、交易中间件(TM)
通常多个数据库之间无法知道彼此在做什么,只将自己所做的操作影射到全局事务中,由TM通知和协调相关数据库的提交或回滚。
4、XA
交易中间件(TM)与数据库之间的接口规范,TM用它来通知数据库事务的开始、结束以及提交、回滚等。XA 接口函数由数据库厂商提供。
5、两阶段提交协议(XA规范的基础)
1)第一阶段
TM请求所有相关数据库准备提交(预提交)各自的事务分支;
数据库收到预提交请求后:
如果可以提交事务分支,则将事务分支中所做的操作固定记录(无法在该事务分支中加入任何操作),对访问的资源上锁,并给TM一个同意提交的应答;
如果无法提交事务分支,回滚事务分支中所做的操作,释放上锁的资源,并返回给TM一个失败应答。
2)第二阶段
TM审查所有数据库返回的预提交结果:
如所有数据库都可以提交,TM将要求所有数据库做正式提交,这样该全局事务被提交。
如果任一数据库预提交返回失败,TM将要求所有其它数据库回滚操作,这样该全局事务被回滚。
6、全局事务处理过程
1)AP通知TM开始一个全局事务;
2)TM通过XA接口函数通知数据库开始事务;
3)AP对数据库管理的资源进行操作,数据库系统记录事务对本地资源的所有操作;
4)TM负责记录AP操作过哪些数据库(事务分支);
5)AP操作完成后TM通过XA接口函数通知数据库操作完成。
6)AP通知TM提交该全局事务;
7)TM通过XA接口函数要求各个数据库做预提交
8)所有数据库返回成功后,TM要求各个数据库做正式提交。
7、XA的优点和注意点
优点:事务的完整性由TM和数据库通过XA接口控制,AP只需要关注与数据库的应用逻辑处理;只需通知TM提交或回滚事务,就可以控制整个全局事务。
注意点:两阶段提交,对数据库来说事务从开始到结束(提交或回滚)的时间相对较长,在事务处理期间数据库使用的资源,直到事务结束时才会释放。

分享到:
评论

相关推荐

    mysql分布式事务实现 MySQL XA pdf

    ### MySQL分布式事务处理与XA协议详解 #### 一、引言 在当今互联网技术高度发展的背景下,分布式系统已经成为处理大规模数据的关键技术之一。而在分布式环境中,确保数据的一致性成为了非常重要的挑战。其中,...

    大规模SOA系统中的分布式事务处理

    分布式事务处理是现代大型服务导向架构(SOA)系统中不可或缺的一部分,特别是在诸如支付宝这样的高并发、高可用性环境中。本讲义将深入探讨在Java环境下实现大规模SOA系统中的分布式事务处理的关键技术和挑战。 ...

    java分布式事务demo

    分布式事务处理通常涉及ACID(原子性、一致性、隔离性和持久性)原则,这些原则是传统数据库事务管理的基础。在Java中,实现分布式事务的方法有很多,例如使用JTA(Java Transaction API)或者Spring框架的声明式...

    分布式事务常用的解决方案,XA,Saga,TCC,MQ补偿.docx

    XA规范定义了分布式事务处理的模型和接口,确保了事务的一致性和可靠性。MySQL从5.x版本开始支持XA规范,Connector/J 5.0.0也提供了XA支持。 Saga是指分布式事务处理的长事务模型, Saga事务由多个小事务组成,每个...

    DTP分布式事务处理规范XA.pdf

    总之,《X/Open分布式事务处理规范XA》是分布式系统中确保数据一致性和事务完整性的基石,它定义了一套标准的接口和协议,使得不同系统和平台间的协作成为可能,极大地推动了跨组织的复杂业务流程的实施。

    深入理解分布式事务

    两阶段提交是一种经典且成熟的分布式事务处理方案。它分为准备阶段和提交阶段,通过事务管理器协调多个本地资源管理器(如数据库)共同完成事务。这种方式简单明了,但在高并发场景下性能不佳,尤其是在主备切换时...

    大规模SOA服务分布式事务处理-程立.rar

    本文将深入探讨这一主题,基于程立的资料,主要关注分布式事务处理模型、XA规范以及两阶段提交和三阶段提交协议。 首先,我们需要理解什么是分布式事务。在传统的单体应用中,事务管理相对简单,但在SOA架构下,...

    基于MySQL和PHP的分布式事务处理.pdf

    通过以上的知识点,我们可以看出基于MySQL和PHP的分布式事务处理涉及到的技术和概念包括分布式事务处理模型、两阶段提交协议、XA接口规范、事务管理器、资源管理器以及实际应用场景分析。这些内容对于理解和实现可靠...

    MySQL 外部XA及其在分布式事务中的应用分析

    本文将深入讨论与理解分布式事务处理原理,MySQL XA事务的具体分类(包括内部XA与外部XA),以及在分布式环境下实现一致性事务处理所面临的挑战和解决策略。 在MySQL数据库中,XA事务通过两阶段提交协议(2PC)来...

    ejb3.0 分布式事务

    在实际开发中,理解和熟练掌握ejb3.0的分布式事务处理机制,对于构建健壮、可扩展的企业级应用至关重要。开发者需要考虑事务的一致性、隔离性、持久性和原子性,以及可能的死锁和性能问题。同时,通过合理配置`...

    [[分布式事务]]支付宝分布式事务设计草案.doc

    X/Open模型是分布式事务处理的标准化框架,定义了TX和XA接口,分别用于应用程序与事务管理器交互,以及事务管理器控制资源管理器(如数据库)的事务参与。然而,X/Open模型在面对复杂的SOA环境和异常恢复时可能存在...

    Mysql事务控制(XA分布式事务)和锁定语句

    ### MySQL事务控制与分布式事务详解 ...通过以上机制,MySQL提供了强大的事务控制能力和对分布式事务的支持,确保了数据处理的可靠性与一致性,尤其适用于需要高度并发和数据完整性的复杂应用场景。

    非Maven基于SSM+Atomikos的分布式事务处理案例源码

    4. **Atomikos**:Atomikos是一个符合JTA(Java Transaction API)标准的事务管理器,支持XA分布式事务协议。在分布式环境中,它能确保跨多个数据源的操作要么全部成功,要么全部回滚,实现ACID(原子性、一致性、...

    分布式事务源代码

    4. **分布式事务API与协议**:如Java的JTA(Java Transaction API)和X/Open XA,它们提供了标准的接口和规范来处理分布式事务。 5. **数据库级别的分布式事务**:例如SQL Server的分布式事务支持,利用MS DTC...

    掌握分布式事务的艺术:深入MySQL XA事务处理

    XA 事务是基于 X/Open XA 规范的一种分布式事务处理机制。这种机制允许应用程序在一个全局事务中协调多个资源管理器(如数据库、消息队列等),从而确保事务的一致性和完整性。具体来说,XA 协议通过两阶段提交(Two...

Global site tag (gtag.js) - Google Analytics