AI 助理
备案 控制台
开发者社区 数据库 文章 正文

【深入浅出Seata原理及实战】「入门基础专题」带你透析认识Seata分布式事务服务的原理和流程(1)

简介: 【深入浅出Seata原理及实战】「入门基础专题」带你透析认识Seata分布式事务服务的原理和流程(1)

分布式事务的背景


随着业务的不断发展,单体架构已经无法满足我们的需求,分布式微服务架构逐渐成为大型互联网平台的首选,但所有使用分布式微服务架构的应用都必须面临一个十分棘手的问题,那就是“分布式事务”问题。


在分布式微服务架构中,几乎所有业务操作都需要多个服务协作才能完成。对于其中的某个服务而言,它的数据一致性可以交由其自身数据库事务来保证,但从整个分布式微服务架构来看,其全局数据的一致性却是无法保证的。




Seata是什么?


Seata 是一个分布式事务处理框架,也是一款开源的分布式事务解决方案,由阿里巴巴和蚂蚁金服共同开源的分布式事务解决方案,能够在微服务架构下提供高性能且简单易用的分布式事务服务,致力于提供高性能和简单易用的分布式事务服务。



Seata相关资料


  • Seata官方网站

image.png

  • Seata开源仓库

image.png



Seata的发展历程


阿里巴巴作为国内最早一批进行应用分布式(微服务化)改造的企业,很早就遇到微服务架构下的分布式事务问题,阿里巴巴对于分布式事务问题先后发布了以下解决方案:


  • 2014 年,阿里中间件团队发布 TXC(Taobao Transaction Constructor),为集团内应用提供分布式事务服务。


  • 2016 年,TXC 在经过产品化改造后,以 GTS(Global Transaction Service) 的身份登陆阿里云,成为当时业界唯一一款云上分布式事务产品。在阿云里的公有云、专有云解决方案中,开始服务于众多外部客户。


  • 2019 年起,基于 TXC 和 GTS 的技术积累,阿里中间件团队发起了开源项目 Fescar(Fast & EaSy Commit And Rollback, FESCAR),和社区一起建设这个分布式事务解决方案。


  • 2019 年 fescar 被重命名为了seata(simple extensiable autonomous transaction architecture)。


TXC、GTS、Fescar以及seata一脉相承,为解决微服务架构下的分布式事务问题交出了一份与众不同的答卷。



事务相关概念


  • 事务:由一组操作构成的可靠、独立的工作单元,事务具备 ACID 的特性,即原子性、一致性、隔离性和持久性。


分布式事务的相关概念


分布式事务的基本原则可以理解成一个包含了若干个分支事务的全局事务

image.png

分布式事务主要涉及以下概念


  • 本地事务:本地事务由本地资源管理器(通常指数据库管理系统 DBMS,例如 MySQL、Oracle 等)管理,严格地支持 ACID 特性,高效可靠。


  • 全局事务:全局事务指的是一次性操作多个资源管理器完成的事务,由一组分支事务组成。


  • 分支事务:在分布式事务中,就是一个受全局事务管辖和协调的本地事务。

image.png

注意:本地事务不具备分布式事务的处理能力,隔离的最小单位受限于资源管理器,即本地事务只能对自己数据库的操作进行控制,对于其他数据库的操作则无能为力


全局事务


全局事务的职责是协调其管辖的各个分支事务达成一致,要么一起成功提交,要么一起失败回滚。此外,通常分支事务本身就是一个满足 ACID特性的本地事务。




Seata的运作原理


Seata对分布式事务的协调和控制,主要是通过XID和3个核心组件实现的。



XID


XID是全局事务唯一标识,可以在服务的调用链路中传递,绑定到服务的事务上下文中


核心组件


Seata定义了3个核心组件


  • TC(Transaction Coordinator):事务协调器,它是事务的协调者(这里指的是 Seata服务器),主要负责维护全局事务和分支事务的状态,驱动全局事务提交或回滚


  • TM(Transaction Manager):事务管理器,它是事务的发起者,负责定义全局事务的范围,并根据TC维护的全局事务和分支事务状态,做出开始事务、提交事务、回滚事务的决议
    image.png
  • RM(Resource Manager):资源管理器,它是资源的管理者(这里可以将其理解为各服务使用的数据库)。它负责管理分支事务上的资源,向TC注册分支事务,汇报分支事务状态,驱动分支事务的提交或回滚。
    image.png

以上三个组件相互协作,TC 以 Seata 服务器(Server)形式独立部署,TM 和 RM 则是以 Seata Client的形式集成在微服务中运行。



Seata的运行流程


Seata 的整体工作流程如下

image.png

  1. TM向TC申请开启一个全局事务,全局事务创建成功后,TC会针对这个全局事务生成一个全局唯一的XID;


  1. XID 通过服务的调用链传递到其他服务;


  1. RM向TC注册一个分支事务,并将其纳入XID对应全局事务的管辖;


  1. TM根据TC收集的各个分支事务的执行结果,向TC发起全局事务提交或回滚决议;


  1. TC调度XID下管辖的所有分支事务完成提交或回滚操作。



Seata的事务模式


目前Seata为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案,可以快速有效地对分布式事务进行控制。


在这四种事务模式中使用最多,最方便的就是 AT 模式。与其他事务模式相比,AT 模式可以应对大多数的业务场景,且基本可以做到无业务入侵,开发人员能够有更多的精力关注于业务逻辑开发。




Seata最后结论


接下来会针对于Seata的每种事务模式进行实战指南。




洛神灬殇
目录
相关文章
郑小健
|
2月前
|
存储 SQL 分布式数据库
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
郑小健
184 0
喜欢猪猪
|
1天前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
喜欢猪猪
9 3
我的康康
|
7天前
|
分布式计算 Hadoop 网络安全
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-08-HDFS集群 基础知识 命令行上机实操 hadoop fs 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
我的康康
15 1
我的康康
|
7天前
|
存储 机器学习/深度学习 缓存
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
Hadoop-07-HDFS集群 基础知识 分布式文件系统 读写原理 读流程与写流程 基本语法上传下载拷贝移动文件
我的康康
21 1
程序员小海绵
|
1月前
|
SQL NoSQL 数据库
SpringCloud基础6——分布式事务,Seata
分布式事务、ACID原则、CAP定理、Seata、Seata的四种分布式方案:XA、AT、TCC、SAGA模式
程序员小海绵
90 5
SpringCloud基础6——分布式事务,Seata
扬流
|
23天前
|
数据采集 分布式计算 MaxCompute
MaxCompute 分布式计算框架 MaxFrame 服务正式商业化公告
MaxCompute 分布式计算框架 MaxFrame 服务于北京时间2024年09月27日正式商业化!
扬流
47 3
1176112968452250
|
26天前
|
Dubbo Java 应用服务中间件
分布式-dubbo的入门
分布式-dubbo的入门
1176112968452250
24 4
龙大吉
|
1月前
|
消息中间件 Java Kafka
"Kafka快速上手:从环境搭建到Java Producer与Consumer实战,轻松掌握分布式流处理平台"
【9月更文挑战第2天】
龙大吉
121 5
郑小健
|
2月前
|
机器学习/深度学习 并行计算 PyTorch
PyTorch与DistributedDataParallel:分布式训练入门指南
【8月更文第27天】随着深度学习模型变得越来越复杂,单一GPU已经无法满足训练大规模模型的需求。分布式训练成为了加速模型训练的关键技术之一。PyTorch 提供了多种工具来支持分布式训练,其中 DistributedDataParallel (DDP) 是一个非常受欢迎且易用的选择。本文将详细介绍如何使用 PyTorch 的 DDP 模块来进行分布式训练,并通过一个简单的示例来演示其使用方法。
郑小健
93 2
kaixin321-44007
|
2月前
|
存储 运维 NoSQL
分布式表的写入流程
分布式表的写入流程
kaixin321-44007
32 2

热门文章

最新文章

  • 1
    分布式1024节点!1天玩转PolarDB-X超大规模集群
  • 2
    java- 分布式- 一致性哈希算法(1)
  • 3
    分布式服务框架 Zookeeper -- 管理分布式环境中的数据
  • 4
    分布式事务之JTA原理与实现(三)
  • 5
    分布式关系型数据库服务 DRDS 提供全新规格实例
  • 6
    分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法
  • 7
    WCF分布式开发常见错误(21):unable to open its IChannelListener.分发器未能打开侦听器
  • 8
    Hadoop大数据平台环境搭建注意事项,波若分布式数据采集工具功能剖析,数道云
  • 9
    AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(二):配置WinClient分布式运行环境
  • 10
    大白话讲讲分布式存储系统的架构设计以及容错架构
  • 1
    Windows系统下安装分布式事务组件Seata
    213
  • 2
    基于Seata实现分布式事务
    137
  • 3
    分布式事务Seata
    82
  • 4
    SpringCloud集成seata分布式事务控制
    69
  • 5
    分布式事务Seata
    59
  • 6
    安装Docker&镜像容器操作&使用Docker安装部署MySQL,Redis,RabbitMQ,Nacos,Seata,Minio
    790
  • 7
    分布式事务解决方案Seata
    92
  • 8
    Seata常见问题之Seata报错Failed to fetch schema of t_table如何解决
    163
  • 9
    Seata常见问题之Seata关闭自动代理提交数据时候报错如何解决
    165
  • 10
    Seata常见问题之Seata AT的设计不支持使用临时表如何解决
    105
  • 相关课程

    更多
  • 开源PolarDB分布式版部署实操
  • Spring Boot+Vue.js+FastDFS实现分布式图片服务器
  • 基于Zookeeper、Dubbo构建互联网分布式基础架构
  • 分布式文件存储系统技术及实现
  • 分布式协调系统 Zookeeper 快速入门
  • RocketMQ知识精讲与项目实战(第一阶段)
  • 相关电子书

    更多
  • 基于社区的分布式 风险感知模型
  • 如何利用Redisson分布式化传统Web项目
  • FLASH:大规模分布式图计算引擎及应用
  • 相关实验场景

    更多
  • 体验PolarDB-X透明分布式
  • 每个IT人都想学的“Web应用上云经典架构”实战
  • 快速玩转Dubbo生态之一致性事务篇(Seata)
  • 快速上手使用Dubbo进行远程调用
  • Rocketmq-spring入门与实践
  • RocketMQ的常规运维实践应用
  • 下一篇
    阿里云无影云电脑免费试用,最长可试用3个月

    玻璃钢生产厂家广东玻璃钢动物雕塑厂家金山区镜面玻璃钢雕塑品牌企业玻璃钢雕塑长颈鹿怎么报价增城玻璃钢花盆花器玻璃钢雕塑水贴纸工艺嘉兴玻璃钢雕塑卡通玻璃钢动物雕塑袋鼠广西园林景观玻璃钢雕塑价格福建商业商场美陈价钱玻璃钢雕塑如何不反光龙泉玻璃钢雕塑厂家电话多少江苏最大的玻璃钢雕塑公司玻璃钢雕塑大摆件三亚玻璃钢雕塑制作厂家昆山五一商场美陈延吉玻璃钢仿铜雕塑山东玻璃钢小品雕塑施工厂家新民玻璃钢牌匾雕塑浙江多彩玻璃钢雕塑订做价格郫县玻璃钢雕塑杭州玻璃钢雕塑哪家好玻璃钢哦是雕塑宝鸡公园标识玻璃钢雕塑湖南玻璃钢雕塑哪家便宜海南玻璃钢仿铜雕塑厂家上海特色商场美陈研发百货商场夏季美陈图片无锡商场美陈玻璃钢卡通雕塑沈阳玻璃钢雕塑作品包头雕塑玻璃钢卡通香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

    玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化