✅P284_商城业务-分布式事务-本地事务在分布式下的问题

gong_yz大约 1 分钟谷粒商城

订单事务问题

本地事务会失效不回滚的两种情况:

  1. 锁库存假失败,由于网络原因导致连接超时,但是锁库存已经操作成功。此时,订单数据回滚而锁库存数据没有回滚。
  2. 其它远程服务调用失败,订单数据回滚,但是已经执行成功的远程服务调用的数据库数据无法回滚

事务保证:

  1. 订单服务异常,库存锁定不运行,全部回滚, 撤销操作
  2. 库存服务事务自治,锁定失败全部回滚,订 单感受到,继续回滚
  3. 库存服务锁定成功了,但是网络原因返回数 据途中问题?
  4. 库存服务锁定成功了,库存服务下面的逻辑 发生故障,订单回滚了,怎么处理?

利用消息队列实现最终一致

  • 库存服务锁定成功后发给消息队列消息(当前库存工作单),过段时间自动解锁,解锁时先查询订单的支付状态。解锁成功修改库存工作单详情项状态为已解锁

1、远程服务假失败:远程服务其实成功了,由于网络故障等没有返回,导致:订单回滚,库存却扣减

2、远程服务执行完成,下面的其他方法出现问题,导致:已执行的远程请求,肯定不能回滚