美文网首页
分布式事务-XA强一致性

分布式事务-XA强一致性

作者: 路亚历克斯 | 来源:发表于2018-10-14 10:54 被阅读0次

场景

业务按领域垂直分库后,在某些场景下,就必然会出现同一个事务上下文中,需要协调多个资源(数据库)以保证业务的一致性。如订单创建服务中生成订单数据、和预占资源(扣减库存)。

实现方式

XA事务

事务管理器、RM1、RM2、RM3、...

  • 第一阶段:准备,READY/就绪、RRAD_ONLY/只读、NOT_READY/未准备好。任一RM回答“未准备好”,则整个事务回滚;全部回答READY,进入第二阶段提交;某个回答只读,第二阶段处理中排除掉。
    所有RM在预备阶段必须完成所有的约束检查,并确保后续提交或放弃时所需要的数据已持久化!(放弃?)
    准备阶段,由于各RM已完成数据的持久化,因此各数据已被加锁,并要等到第二阶段的提交操作完成才会释放锁!因此,整体上看,两阶段事务方式下,每个RM上的操作,锁的时间都变长了,所以会降低并发处理能力(锁等待)和增加系统异常几率(死锁)。

  • 第二阶段:提交

实现

  • TX接口(APP - TM)、XA接口(TM - RM)
    事务管理器通常由专门的中间件提供,资源管理器如数据库、消息队列等产品一般会提供对XA接口的支持。

总结

  • 核心思想:前面给予充分的处理时间和出错机会,第二阶段一致性提交确认做的事情足够少,保证最小不一致几率。(焦点是解决多个参与者的协调&同步问题!在最短的时间内完成一致性同步/协调!)
  • 单机锁时间消耗微秒级,分布式事务下锁时间消耗毫秒级,1000倍的差异!
  • 系统处理上的吞吐率与资源上的时间消耗成反比,即阿姆达尔定理!

相关文章

  • 分布式锁,分布式事务,分布式job

    分布式事务: 弱一致性(基于MQ的最终一致性) 强一致性(基于XA二段提交的强一致性) 分布式JOB(任务调度) ...

  • 分布式事务

    分布式事务 强一致性事务 XA 柔性事务 BASE2.1 不使用事务,业务侧补偿 SAGA模式2.2 使用柔性事务...

  • 16. 分布式事务seata的四种模式

    Seata四种分布式事务解决方案: XA模式:强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入 TCC模式:...

  • MySQL分布式事务支持

    MySQL分布式事务介绍 InnoDB存储引擎提供了对XA事务的支持,并通过XA事务来支持分布式事务的实现。分布式...

  • 分布式事务-总览

    分布式事务-XA规范 XA规范的来源 XA是有X/Open组织提出的分布式事务的规范,XA规范主要定义了(全局)事...

  • 《XA - 分布式事务》

    XA - 分布式事务

  • Mysql基础——事务

    内容 事务事务基本知识事务特性如何实现的?快照读和当前读 分布式事务XA规范mysql基于XA实现的分布式事务my...

  • MySQL 中基于 XA 实现的分布式事务

    五、MySQL 中基于 XA 实现的分布式事务 5.1 XA协议 首先我们来简要看下分布式事务处理的XA规范 可知...

  • 分布式事务

    本地事务 分布式事务 分布式事务模型 XA 优点:对应用侵入很小,用户可以像使用本地事务一样使用基于XA协议的分布...

  • 分布式事务-XA强一致性

    场景 业务按领域垂直分库后,在某些场景下,就必然会出现同一个事务上下文中,需要协调多个资源(数据库)以保证业务的一...

网友评论

      本文标题:分布式事务-XA强一致性

      本文链接:https://www.haomeiwen.com/subject/idjzaftx.html