热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

分布式事务之XA方案

分布式事务XA学习视频什么是XAXA方案是XOPEN组织定义的一种分布式事务处理标准,在阿里巴巴seata定义的分布式事务框架内,利用事务资源对XA协议的支持(即利用数据库支持

分布式事务XA学习视频


什么是XA

XA方案是X/OPEN组织定义的一种分布式事务处理标准, 在阿里巴巴seata定义的分布式事务框架内, 利用事务资源对XA协议的支持(即利用数据库支持XA协议 比如关系型数据库mysql,oracle等等) , 以XA协议的机制来管理事务分支的一种两段式方案。


XA的流程

XA的两个阶段示意图


  • 三个角色(TM, RM, TC)
    TM : 事务管理器, 即开启全局事务的角色, 用来划定分布式事务的边界和范围。
    RM : 资源管理器, 即针对数据库进行具体操作的角色。
    TC : 全局事务协调者, 用于事务注册, 全局事务提交, 全局事务回滚。
  • 总体流程
    1.TM向TC注册全局事务
    2.调用各资源管理器(即对各数据库数据进行操作), RM向TC注册分支事务, 此时sql会暂存,不会立即提交
    3.TM向TC下达全局事务提交, 此时TC会依次执行sql
    4.如果有分支事务失败了,则会对之前提交的sql进行回滚

代码示意

在这里插入图片描述
在这里插入图片描述


XA的优势


  • 基于CP设计, 保证了一致性
  • 主流的关系型数据库都对XA有支持
  • 两段式提交实现简单粗暴, 成熟稳定

XA的劣势


  • 数据阻塞, 执行效率低, 基于数据库事务处理, 被操作的数据会被hang住, 后续对该数据的操作会被阻塞, 高并发系统禁用。
  • 协议阻塞, 收到XA commit或 XA rollback 前,必须阻塞等待, 如果某一个RM"失联", TC会进行一系列重试, 其余RM资源会hang住, 等待超时回滚。
  • 所涉及的数据库必须支持XA协议。

适用场景


  • 低并发, 数据冲突较少的系统, 因为在全局事务未提交或回滚时, 涉及的数据会被hang住
  • 绝大多数系统都适用, 没多少系统有高并发场景

推荐阅读
  • 揭秘腾讯云CynosDB计算层设计优化背后的不为人知的故事与技术细节
    揭秘腾讯云CynosDB计算层设计优化背后的不为人知的故事与技术细节 ... [详细]
  • 智能制造数据综合分析与应用解决方案
    在智能制造领域,生产数据通过先进的采集设备收集,并利用时序数据库或关系型数据库进行高效存储。这些数据经过处理后,通过可视化数据大屏呈现,为生产车间、生产控制中心以及管理层提供实时、精准的信息支持,助力不同应用场景下的决策优化和效率提升。 ... [详细]
  • 【漫画解析】数据已删,存储空间为何未减?揭秘背后真相
    在数据迁移过程中,即使删除了原有数据,存储空间却未必会相应减少。本文通过漫画形式解析了这一现象背后的真相。具体来说,使用 `mysqldump` 命令进行数据导出时,该工具作为 MySQL 的逻辑备份工具,通过连接数据库并查询所需数据,将其转换为 SQL 语句。然而,这种操作并不会立即释放存储空间,因为数据库系统可能保留了已删除数据的碎片信息。文章进一步探讨了如何优化存储管理,以确保数据删除后能够有效回收存储空间。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 本文详细探讨了MySQL并发参数的优化与调整方法,旨在帮助读者深入了解如何通过合理配置这些参数来提升数据库性能。文章不仅介绍了常见的并发参数及其作用,还提供了实际操作中的调整策略和最佳实践,适合希望提高数据库管理技能的技术人员阅读。 ... [详细]
  • 近年来,BPM(业务流程管理)系统在国内市场逐渐普及,多家厂商在这一领域崭露头角。本文将对当前主要的BPM厂商进行概述,并分析其各自的优势。目前,市场上较为成熟的BPM产品主要分为两类:一类是综合型厂商,如IBM和SAP,这些企业在整体解决方案方面具有明显优势;另一类则是专注于BPM领域的专业厂商,它们在特定行业或应用场景中表现出色。通过对比分析,本文旨在为企业选择合适的BPM系统提供参考。 ... [详细]
  • 本周,我深入研究了 ECharts 插件的使用方法,整体感觉插件操作较为简便,但后台算法较为复杂。此外,我还学习了 MySQL 函数的新应用,进一步提升了数据库操作的灵活性。同时,分享了自己在 Python 书籍外借过程中的体验,总结了一些实用的借阅技巧和心得。 ... [详细]
  • 如何在Oracle ASM_Diskgroup中重命名现有磁盘
    如何在Oracle ASM_Diskgroup中重命名现有磁盘 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 本题库精选了Java核心知识点的练习题,旨在帮助学习者巩固和检验对Java理论基础的掌握。其中,选择题部分涵盖了访问控制权限等关键概念,例如,Java语言中仅允许子类或同一包内的类访问的访问权限为protected。此外,题库还包括其他重要知识点,如异常处理、多线程、集合框架等,全面覆盖Java编程的核心内容。 ... [详细]
  • MySQL索引详解及其优化策略
    本文详细解析了MySQL索引的概念、数据结构及管理方法,并探讨了如何正确使用索引以提升查询性能。文章还深入讲解了联合索引与覆盖索引的应用场景,以及它们在优化数据库性能中的重要作用。此外,通过实例分析,进一步阐述了索引在高读写比系统中的必要性和优势。 ... [详细]
  • 在数据库设计中,谨慎使用外键至关重要。本文探讨了九个关键原因,包括数据完整性的维护、性能优化、系统复杂性的管理、数据迁移的灵活性以及对外部系统的依赖性控制。通过深入分析这些因素,可以帮助开发人员和架构师做出更明智的设计决策,确保数据库系统的高效与稳定。 ... [详细]
  • MemFireDB 在实时高并发的在线事务处理(OLTP)系统中表现出色。随着移动互联网、电商和社交应用等领域的迅猛发展,传统单机关系型数据库(如MySQL)或分库分表架构已难以满足日益增长的性能需求。MemFireDB 通过其高效的内存计算能力和灵活的分布式架构,能够显著提升系统的响应速度和处理能力,确保在高负载情况下依然保持稳定性和可靠性。此外,MemFireDB 还支持复杂的查询操作和事务管理,适用于需要高性能和低延迟的应用场景。 ... [详细]
  • 在尝试使用指定的数据库进行登录时,遇到了权限问题。具体表现为用户 'lzldb'@'%' 无权访问数据库 'lzldb',错误代码为 1044 (42000)。命令行参数 `-D` 指定了数据库名称,但未能成功连接。建议检查用户的权限配置,确保其具有对目标数据库的访问权限。此外,使用密码时应谨慎处理,避免在命令行中明文显示。 ... [详细]
  • 本文详细介绍了使用响应文件在静默模式下安装和配置Oracle 11g的方法。硬件要求包括:内存至少1GB,具体可通过命令`grep -i memtotal /proc/meminfo`进行检查。此外,还提供了详细的步骤和注意事项,确保安装过程顺利进行。 ... [详细]
author-avatar
长相守短相思洪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有