跳到主要内容

订单库存扣减分布式事务解决方案

订单入库扣减总体流程图

image-20180508144026095

  1. 为了提高性能,采用乐观性事务,即默认下单、库存扣减都可以成功
  2. 采用补偿性事务解决一致性问题,即当库存扣减失败或成功时都通知订单服务,更改其状态
  3. 库存扣减服务内部采用分布式锁保证一致性
  4. 顾客发起支付时,调用订单接口获取此订单是否可以被支付,如果不可以(可能出库失败,或确认出库状态)则重试几次,依然未能达到支付状态则返回不能支付给客户,如果达到可支付状态则调起支付
  5. 注:绿色为需要对外暴露的接口

库存扣减流程

image-20180515155430740