zoukankan      html  css  js  c++  java
  • Album++:分布式事务专辑-XA 解决方案

    XA 解决方案:↓ ↓ ↓

    2PC的传统方案是在数据库层面实现的,如Oracle、MySQL都支持2PC协议,为了统一标准减少行业内不必要的对 接成本,

    需要制定标准化的处理模型及接口标准,国际开放标准组织Open Group定义了分布式事务处理模型 DTP(Distributed Transaction Processing Reference Model)。

    为了让大家更明确XA方案的内容程,下面新用户注册送积分为例来说明:

     执行流程如下:

      1、应用程序(AP)持有用户库和积分库两个数据源。

      2、应用程序(AP)通过TM通知用户库RM新增用户,同时通知积分库RM为该用户新增积分,RM此时并未提交事 务,此时用户和积分资源锁定。

      3、TM收到执行回复,只要有一方失败则分别向其他RM发起回滚事务,回滚完毕,资源锁释放。

      4、TM收到执行回复,全部成功,此时向所有RM发起提交事务,提交完毕,资源锁释放。

    DTP 模型定义如下角色:

    AP (Application Program):即应用程序,可以理解为使用DTP分布式事务的程序。

    RM (Resource Manager):即资源管理器,可以理解为事务的参与者,一般情况下是指一个数据库实例,通过 资源管理器对该数据库进行控制,资源管理器控制着分支事务。

    TM (Transaction Manager):事务管理器,负责协调和管理事务,事务管理器控制着全局事务,管理事务生命 周期,并协调各个RM。

           全局事务 是指分布式事务处理环境中,需要操作多个数据库共同完成一个工作,这个 工作即是一个全局事务。

    DTP 模型定义TM和RM之间通讯的接口规范叫XA,简单理解为数据库提供的2PC接口协议,基于数据库的XA 协议来实现2PC又称为XA方案。

    以上三个角色之间的交互方式如下:

    1)TM向AP提供 应用程序编程接口,AP通过TM提交及回滚事务。

    2)TM交易中间件通过XA接口来通知RM数据库事务的开始、结束以及提交、回滚等。

    总结:

    整个2PC的事务流程涉及到三个角色AP、RM、TM。

    AP指的是使用2PC分布式事务的应用程序;RM指的是资 源管理器,它控制着分支事务;TM指的是事务管理器,它控制着整个全局事务。

    1)在准备阶段RM执行实际的业务操作,但不提交事务,资源锁定;

    2)在提交阶段TM会接受RM在准备阶段的执行回复,只要有任一个RM执行失败,TM会通知所有RM执行回滚操 作,否则,TM将会通知所有RM提交该事务。提交阶段结束资源锁释放。

    XA方案的问题:

    1、需要本地数据库支持XA协议。

    2、资源锁需要等到两个阶段结束才释放,性能较差。

    Face your past without regret. Handle your present with confidence.Prepare for future without fear. keep the faith and drop the fear.

    面对过去无怨无悔,把握现在充满信心,备战未来无所畏惧。保持信念,克服恐惧!一点一滴的积累,一点一滴的沉淀,学技术需要不断的积淀!

  • 相关阅读:
    Unity Camera属性
    多摄像机同时协作运行
    《未来简史》读书笔记
    Binder学习笔记(十二)—— binder_transaction(...)都干了什么?
    Binder学习笔记(十一)—— 智能指针
    binder学习笔记(十)—— 穿越到驱动层
    Binder学习笔记(九)—— 服务端如何响应Test()请求 ?
    Binder学习笔记(八)—— 客户端如何组织Test()请求 ?
    使用hexo搭建博客并上传GitHub
    Binder学习笔记(七)—— ServiceManager如何响应addService请求
  • 原文地址:https://www.cnblogs.com/codingmode/p/15058440.html
Copyright © 2011-2022 走看看