1.使用TCC原因

在当前的业务中,比如支付合并订单接口(生成订单)来说,如果生成成功会发送消息到延时队列中用于超时未支付自动取消订单。如果这个操作也想放入事务的话,毫无疑问—TCC吧。

2.TCC的含义

TCC=>Try (准备/尝试) Commit(提交) Cancel(取消)。
说白了,现在你写一个方法保存订单,使用TCC后你得写三个方法。
分别就是:
①保存订单操作准备阶段要做的事情(try)
②在可以提交的时候,保存订单要做的事情(commit)
③在有异常需要回滚的时候,保存订单操作需要做的回滚操作(Cancel)
注:①动作每次保存订单都会做
(2选1)
提交时会去执行②动作
回滚时会去执行③动作
image.png

3.代码怎么写??

①创建一个新的包
image.png
②里面写什么呢??不多2个类
image.png
③OrderActionService是个接口,具体怎么写
image.png
④OrderActionServiceImpl是③接口的实现类
image.png