搜索

seata 下载及安装 分布式事务 参考文章: 分布式事务实战方案汇总 https://www.cnblogs.com/yizhiamumu/p/16625677.html 分布式事务原理及解决方案案例 https://www.cnblogs.com/yizhiamumu/p/16662412.html


发布时间: 2022-11-24 18:09:08    浏览次数:20 次

分布式事务 参考文章:

分布式事务实战方案汇总 https://www.cnblogs.com/yizhiamumu/p/16625677.html

分布式事务原理及解决方案案例 https://www.cnblogs.com/yizhiamumu/p/16662412.html

 

 

Seata术语

官网地址:https://seata.io/zh-cn/docs/overview/terminology.html

在了解Seata之前,我们先来了解一下 Seata 几个关键的概念:

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

TM(Transaction Manager) 事务管理者: 发起者,同时一个RM的一种,定义全局事务的范围,开始全局事务,提交或回滚全局事务。

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

Seata 2PC

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

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

一阶段本地事务提交前,需要确保先拿到 全局锁 。拿不到全局锁 ,不能提交本地事务。
拿全局锁的尝试被限制在一定范围内,超出范围将放弃,并回滚本地事务,释放本地锁。

在数据库本地事务隔离级别读已提交或以上的基础上,Seata(AT 模式)的默认全局隔离级别是 读未提交

如果应用在特定场景下,必需要求全局的 读已提交 ,目前 Seata 的方式是通过 SELECT FOR UPDATE 语句的代理。

Seata执行流程分析:

每个RM 使用 DataSourceProxy链接数据路,目的是使用 ConnectionProxy,使用数据源和数据代理的目的是在第一阶段将 undo和业务数据放在一个本地事务中提交,这样就保存了只要有业务操作就一定会有dudo日志,

在第一阶段中,undo存放了数据修改前后修改的值,是为了事务回滚做好准备,在第一阶段完成就已经将分支事务提交了,也就释放了锁资源。

TM开启全局事务开始,将XID全局事务ID放在事务上下文中,通过feign调用将XID传入下游服务器中,每个分支事务将自己的 Branch ID分支事务ID和XID进行关联,

在第二阶段全局事务提交,TC会通知各个分支参与者提交分支事务,在第一阶段已经提交了分支事务,在这里各参与者只需要删除undo即可,并且可以异步执行。

如果某一个分支事务异常了,第二阶段全局事务回滚操作,TC会通知各个分支参与者回滚分支事务,通过XID和Branch-ID找到对应的回滚日志,通过回滚日志生成的反向SQL执行,完成分支事务回滚到之前的状态。

 

Seata 下载安装

下载地址:https://github.com/seata/seata/releases

 

解压后找到conf目录

 

 

 

我们在启动seata之前,首先要启动nacos,其实也很简单,只需要下载nacos后启动就行,不知道nacos怎么操作的看这里的介绍nacos基础介绍,启动好之后,我们再来启动seata,bin目录下seata-server.bat

如果我们看到8091端口在监听,并且在nacos看到服务注册上去了,就表示我们seata启动成功了

 

免责声明 seata 下载及安装 分布式事务 参考文章: 分布式事务实战方案汇总 https://www.cnblogs.com/yizhiamumu/p/16625677.html 分布式事务原理及解决方案案例 https://www.cnblogs.com/yizhiamumu/p/16662412.html,资源类别:文本, 浏览次数:20 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-24 06:09:08。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://www.cnblogs.com/yizhiamumu/p/16809123.html