加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

再问你一遍,你真的了解分布式事务吗?

发布时间:2020-02-22 18:25:08 所属栏目:MySql教程 来源:站长网
导读:副标题#e# 图片来自 Pexels 本地事务 事务 Transaction 由一组 SQL 组成,具有四个 ACID 特性: Atomicity:原子性,构成事务的一组SQL,要么全部生效,要么全不生效,不会出现部分生效的情况。 Consistency:一致性,数据库经过事务操作后从一种状态转变为

再问你一遍,你真的了解分布式事务吗?

如下图所示,Seata 中有三大模块,分别是 TM、RM 和 TC。其中 TM 和 RM 是作为 Seata 的客户端与业务系统集成在一起,TC 作为 Seata 的服务端独立部署:

TC:事务协调者,维护全局和分支事务的状态,驱动全局事务提交或回滚。

TM:事务管理器,定义全局事务的范围:开始全局事务、提交或回滚全局事务。

RM:资源管理器,管理分支事务处理的资源,与 TC 交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

在 Seata 中,分布式事务的执行流程:

TM 开启分布式事务(TM 向 TC 注册全局事务记录)。

按业务场景,编排数据库、服务等事务内资源(RM 向 TC 汇报资源准备状态 )。

TM 结束分布式事务,事务一阶段结束(TM 通知 TC 提交/回滚分布式事务)。

TC 汇总事务信息,决定分布式事务是提交还是回滚。

TC 通知所有 RM 提交/回滚资源,事务二阶段结束。

①AT 模式

AT 模式是一种无侵入的分布式事务解决方案。

在 AT 模式下,用户只需关注自己的“业务 SQL”,用户的 “业务 SQL” 作为一阶段,Seata 框架会自动生成事务的二阶段提交和回滚操作。

一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。

二阶段:提交异步化,非常快速地完成。回滚通过一阶段的回滚日志进行反向补偿。

再问你一遍,你真的了解分布式事务吗?

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读