Seata AT
请描述seata AT模式的前提条件和整体的机制
基于ACID的关系型数据库
java应用通过JDBC访问数据库
两阶段提交协议的演变:
一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。
二阶段:
提交异步化,非常快速地完成。
回滚通过一阶段的回滚日志进行反向补偿。
请描述seata AT模式一阶段的详细步骤
1,解析 SQL:得到 SQL 的类型(UPDATE),表(product),条件等相关的信息。
2,查询前镜像:根据解析得到的条件信息,生成查询语句,定位数据。
3,执行业务 SQL
4,查询后镜像:根据前镜像的结果,通过 主键 定位数据。
5,插入回滚日志:把前后镜像数据以及业务 SQL 相关的信息组成一条回滚日志记录,插入到 UNDO_LOG 表中。
6,提交前,向 TC 注册分支:申请表中,主键值相应记录的 全局锁
7,本地事务提交:业务数据的更新和前面步骤中生成的 UNDO LOG 一并提交
8,将本地事务提交的结果上报给 TC。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?