zoukankan      html  css  js  c++  java
  • 分布式事务一-copy

    一、常用的分布式事务解决方案介绍


    二、本地事务
    在单个数据库的本地并且限制在单个进程内的事务
    本地事务不涉及多个数据来源 
    三、全局事务(DTP模型)--标准分布式事务
    AP(Application Program):也就是应用程序,可以理解为使用 DTP 的程序
    RM(Resource Manager):资源管理器(这里可以是一个 DBMS,或者消息服务器管理系统)应用程序通过资源管理器对资源进行控制,资源必须实现 XA 定义的接口
    TM(Transaction Manager):事务管理器,负责协调和管理事务,提供给 AP 应用程序编程接口以及管理资源管理器
    事务管理器控制着全局事务,管理事务生命周期,并协调资源。资源管理器负责控制和管理实际资源


    全局事务(DTP模型)--XA

    XA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(TM)和(局部)资源管理器(RM)之间的接口。主流的关系型数据库产品都是实现了XA接口的。
    XA接口是双向的系统接口,在事务管理器(TM)以及一个或多个资源管理器(RM)之间形成通信桥梁。
    XA之所以需要引入事务管理器是因为,在分布式系统中,从理论上讲两台机器理论上无法达到一致的状态,需要引入一个单点进行协调
    由全局事务管理器管理和协调的事务,可以跨越多个资源(如数据库或JMS队列)和进程。全局事务管理器一般使用 XA 二阶段提交协议与数据库进行交互
    四、两阶段提交(Two Phase Commit)
    两阶段提交协议(Two-phase commit protocol)是XA用于在全局事务中协调多个资源的机制。
    TM和RM间采取两阶段提交(Two Phase Commit)的方案来解决一致性问题。
    两阶段提交需要一个协调者(TM)来掌控所有参与者节点(RM)的操作结果并且指引这些节点是否需要最终提交。 
    五、JavaEE平台中的分布式事务实现
    JTA(Java Transaction API):面向应用、应用服务器与资源管理器的高层事务接口。
    JTS(Java Transaction Service):JTA事务管理器的实现标准,向上支持JTA,向下通过CORBA OTS实现跨事务域的互操作性。
    EJB:基于组件的应用编程模型,通过声明式事务管理进一步简化事务应用的编程。
    优点
    简单一致的编程模型
    跨域分布处理的ACID保证
    局限
    DTP模型本身的局限 
    六、标准分布式事务解决方案的利弊
    优点
    严格的ACID
    缺点
    效率非常低(微服务架构下已不太适用)

    全局事务方式下,全局事务管理器(TM)通过XA接口使用二阶段提交协议( 2PC )与资源层(如数据库)进行交互。使用全局事务,数据被Lock的时间跨整个事务,直到全局事务结束
    2PC 是反可伸缩模式,在事务处理过程中,参与者需要一直持有资源直到整个分布式事务结束。这样,当业务规模越来越大的情况下,2PC 的局限性就越来越明显,系统可伸缩性会变得很差。
    与本地事务相比,XA 协议的系统开销相当大,因而应当慎重考虑是否确实需要分布式事务。而且只有支持 XA 协议的资源才能参与分布式事务
    七、待续
    分布式事务处理二
    ————————————————
    版权声明:本文为CSDN博主「chenshiying007」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_27384769/article/details/79302497

  • 相关阅读:
    leetcode 576. Out of Boundary Paths 、688. Knight Probability in Chessboard
    leetcode 129. Sum Root to Leaf Numbers
    leetcode 542. 01 Matrix 、663. Walls and Gates(lintcode) 、773. Sliding Puzzle 、803. Shortest Distance from All Buildings
    leetcode 402. Remove K Digits 、321. Create Maximum Number
    leetcode 139. Word Break 、140. Word Break II
    leetcode 329. Longest Increasing Path in a Matrix
    leetcode 334. Increasing Triplet Subsequence
    leetcode 403. Frog Jump
    android中webView加载H5,JS不能调用问题的解决
    通过nginx中转获取不到IP的问题解决
  • 原文地址:https://www.cnblogs.com/hanease/p/14466166.html
Copyright © 2011-2022 走看看