网站首页 > 博客文章 正文
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
应用集成Seata使用AT模式的前提:
- 基于支持本地 ACID 事务的关系型数据库。
- Java 应用,通过 JDBC 访问数据库。
AT模式的整体机制是由两阶段提交协议的演变:
- 一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。
- 二阶段:
- 提交异步化,非常快速地完成。
- 回滚通过一阶段的回滚日志进行反向补偿。
Seata AT模式一阶段整体操作流程如下图所示:
结合AT模式的操作流程,带来疑问:
1、如何拦截需要操作数据库的SQL语句,然后进行执行前 和 执行后的结果保存,并且支持常用主流数据库?
2、未开启AT模式时,如何继续使用原有模式操作数据库?
带着疑问思考了一下:
数据库操作中都是基于JDBC DataSource中的Connection进行SQL操作,编写代理类拦截相关DataSource,从而实现SQL操作的拦截。
一、DataSourceProxy 关键源码
二、如何拦截原始DataSource并使用DataSourceProxy?
使用AOP进行相关拦截,核心相关类:
SeataAutoDataSourceProxyCreator
SeataAutoDataSourceProxyAdvice
三、通过ConnectionProxy拦截实现PrepareStatement
数据库执行SQL时,都会通过PrepareStatement进行操作。
四、通过PrepareStatement拦截准备执行的SQL
五、根据不同的DML SQL 执行对应的Executor
5.1 解析SQL,获取SQL类型
5.2 获取执行SQL前数据 + 执行SQL + 执行SQL后数据
5.3 注册分支事务 + 保存Undo_log数据 + 提交本地事务 + 上报本地事务
六、其他应用场景的畅想
通过Seata的实现方式,本人畅想了一下其他的应用场景。
1、业务日志的保存
在很多应用系统中,都需要保存日志记录,保存的内容包括:字段更改前、更改后的字段值。
2、应用系统保存所有执行SQL语句以及安全权限管控
关键性的SQL业务日志记录,结合应用系统的用户安全权限控制最底层的添删改权限。
猜你喜欢
- 2024-10-08 分布式事务解决方案之 Alibaba Seata
- 2024-10-08 分布式事务Seata源码解析二:Seata Server启动时都做了什么
- 2024-10-08 分布式事务 Seata(分布式事务seata缺点)
- 2024-10-08 深度剖析 Seata TCC 模式【图解 + 源码分析】
- 2024-10-08 不要光说理论,分布式事务2阶段提交理论的落地方案seata
- 2024-10-08 「推荐」阿里开源的分布式事务框架 Seata
- 2024-10-08 Seata 中Resource Manager (RM) 本地事务管理
- 2024-10-08 Seata 环境搭建(seata部署在docker)
- 2024-10-08 「每日背一句Day 107」Will you take a seat at the head of
- 2024-10-08 Seata AT 模式实现两个服务间分布式事务
你 发表评论:
欢迎- 07-07Xiaomi Enters SUV Market with YU7 Launch, Targeting Tesla with Bold Pricing and High-Tech Features
- 07-07Black Sesame Maps Expansion Into Robotics With New Edge AI Strategy
- 07-07Wuhan's 'Black Tech' Powers China's Cross-Border Push with Niche Electronics and Scientific Firepower
- 07-07Maven 干货 全篇共:28232 字。预计阅读时间:110 分钟。建议收藏!
- 07-07IT运维必会的30个工具(it运维工具软件)
- 07-07开源项目有你需要的吗?(开源项目什么意思)
- 07-07自动化测试早就跑起来了,为什么测试管理还像在走路?
- 07-07Cursor 最强竞争对手来了,专治复杂大项目,免费一个月
- 最近发表
-
- Xiaomi Enters SUV Market with YU7 Launch, Targeting Tesla with Bold Pricing and High-Tech Features
- Black Sesame Maps Expansion Into Robotics With New Edge AI Strategy
- Wuhan's 'Black Tech' Powers China's Cross-Border Push with Niche Electronics and Scientific Firepower
- Maven 干货 全篇共:28232 字。预计阅读时间:110 分钟。建议收藏!
- IT运维必会的30个工具(it运维工具软件)
- 开源项目有你需要的吗?(开源项目什么意思)
- 自动化测试早就跑起来了,为什么测试管理还像在走路?
- Cursor 最强竞争对手来了,专治复杂大项目,免费一个月
- Cursor 太贵?这套「Cline+OpenRouter+Deepseek+Trae」组合拳更香
- 为什么没人真的用好RAG,坑都在哪里? 谈谈RAG技术架构的演进方向
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)