seata 如何开启tcc事物_Seata(TCC)+SpringCloud实现全局事务

概述

参考资料:

实现

被调用方

使用 seata 的 TCC 模式全局事务,需要被调用方使用接口,并配合对应的注解来实现,接口需要定义 TCC 各个阶段需要调用的方法。

接口需要实现的三个方法:

用于业务预处理的方法,即 Try 阶段、的方法,比如冻结用户的部分余额等等;

用于提交业务的方法,即 Commit 方法,比如扣除用户之前冻结的部分余额;

用于回滚业务的方法,即 Rollback 方法,比如返还之前冻结的用户余额;

被调用方需要用到的几个注解:

@LocalTCC (必要)

该注解需要添加到上面描述的接口上,表示实现该接口的类被 seata 来管理,seata 根据事务的状态,自动调用我们定义的方法,如果没问题则调用 Commit 方法,否则调用 Rollback 方法。

@TwoPhaseBusinessAction (必要)

该注解用在接口的 Try 方法上,该注解的用法如下:

@TwoPhaseBusinessAction(name = "tryTcc", commitMethod = "commitTcc", rollbackMethod = "cancelTcc")

该注解包含这几个属性:

* name 为 tcc 方法的 bean 名称,需要全局唯一,一般写方法名即可;

* commitMethod 自然地写 Commit 方法的方法名;

* rollback

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值