;
三 回滚逻辑优化
把子订单做的稍宽些,把一些信息放到订单表里尤其一些强关联性信息,最好做到一张表内,比如库存主键,商品购买数量,这样在回滚的时候一方面可以精准命中目标,另外一方面减少许多额外的查询操作...;
加锁 + 乐观锁保障回滚不会被多次回滚,其实秒杀下单一般稍微多考虑考虑都不会出现超卖情况,但是回滚这个逻辑需要好好考虑,这个极易造成超卖,普通业务单一产品单一库存还好,像我的业务涉及到周期性库存,其实很容易涉及到超卖...;
异步化,在以下情况下可以采用异步化回滚的方式
如果我们对上游的调用量没有一个很好的预估或者上游的取消订单流量极其不规律
上游业务不关心返回值或者上游业务不需要立即知晓回滚结果
那么这里我们可以采用异步...MQ进行接收回滚,如果上游需要知晓回滚结果,可能会高频查状态那么可以将回滚状态都存入redis
回滚接口我这里优化的比较少
一方面是由于其功能确实简单,只需要保障回滚别造成超卖即可
另外一方面是因为大部分商品都是优惠力度极大...,一般不会取消订单,回滚库存;
目前就到这里了,后面有空我会再补充一些