订单业务时序图,强一致性,分布式事务MQ处理

在这里插入图片描述
如图,订单服务的Service层使用@Transation执行本地事务,调用库存,优惠券,支付微服务(同步调用),根据返回结果判断是否调用成功,如果有一个调用失败,向MQ发送回退消息。
库存,优惠券,支付微服务监听MQ中的指定topic和Tag的消息,根据消息内容进行相应的本地事物的 回滚(MQ的消息体要包含订单id,优惠券ID,金额,下单数量等全部内容,方便其他微服务回滚操作)
保证最终的订单,库存,优惠券,支付,4个微服务的事务一致性,要么一起成功,要么一起失败
代码结构
在这里插入图片描述库存,优惠券,支付微服务Service中使用@Tansation实现本地事务,如果操作失败手动抛异常RuntimeException,订单微服务catch到异常可以根据异常的信息判断是哪个微服务执行失败,向MQ中发送回滚信息
(项目框架:zk+dubbo+springboot+mybatis)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值