分布式事务(seata AT)

seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式务服务.

seate将为用户提供了AT,TCC,SAGA和XA 事务模式.

Seata AT事务方案

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

当用户下订单时,执行以下三步流程:

订单系统保存订单
订单系统调用库存服务,减少商品库存
订单系统调用账户服务,扣减用户金额
这三步要作为一个整体事务进行管理,要么整体成功,要么整体失败。

Seata AT基本原理
Seata AT 事务分两个阶段来管理全局事务:
第一阶段: 执行各分支事务
第二阶段: 控制全局事务最终提交或回滚
  

seata AT是通过 通过事务协调:

1,执行分布式事务

2.控制全局事务,最终提交或回滚

3.对每个全局事务分配一个事务id

4.RM(资源)上报状态,上报给TC 

5.TC要收集每个模块的状态

6.访问库存RM 要先向TC注册

总结:确定有的订单模块都执行成功了,TC才会执行第二阶段回滚或提交,或执行失败了TC会向所有RM发送回滚操作指令,RM会完成最终回滚操作

TC通对数据库的undo_log事务日志表,里面有操作前,操作后的两个数据在这里面,若分布事务下单个模块有一个执行失败,那么TC会通过undo_log事务日志表,回滚到操作前的数据,然后删除事务日志表,这步也叫第二阶段提交.

TC事务协调器,确定所有订单模块都执行成功了,TC才会执行第二阶段回滚或提交.若失败了TC会完成最终回滚操作

 seata AT 事务

1.启动TC事务协调器

2.修改三个配置文件

registrg.conf   /bin目录下

file.conf      /bin 目录下  这个是seata server运行过程中产生的日志数据存储到哪儿

seata-server.bat   这个如查是苹果电脑就用seata-server.bat

 

在seata文件夹里的bin文件里输入:cmd 打开小黑窗口

运行必:

设置JAVA_HOME PATH

JDK必须是1.8

 在eureka网页里有seata-server就表示成功了

然后就是在idae中的哪个类先执行,就在哪个类里的业务方法添加事务注解:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值