Milo源码解析(五)

深入解析Try阶段

上一篇博客介绍了InitiatorMiloTransactionHandler是如何处理事务发起者发起的调用,try阶段完成后执行confirmPhase,否则执行cancelPhase,在解析这两个方法之前我们先再回到tryPhase方法里面看一下,milo框架当创建完事务日志(READY阶段)并且绑定到当前线程之后调用了pjp.proceed(),执行到这里就会进入到payment方法,payment方法最重要的两个地方就是通过openFeign远程调用了库存服务扣减库存和账户服务扣减余额。
在这里插入图片描述
在这里插入图片描述
扣减库存和扣减账户是分别通过两个FeignClient去执行的,而这两个FeignClient的扣减方法上都是带有@MiloTCC注解的,对于Milo框架来说分布式事务所有的参与者都必须带@MiloTCC注解。所以当执行扣减库存和扣减账户时的远程调用也将被Milo框架拦截,只有创建订单、扣减库存和扣减账户都顺序完成,Try阶段才算完成。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值