思路方案

  1. 将库存,已售数据,乐观锁标记versionId存入缓存.在更新库存的时候,为了避免并发更新导致超卖,一般会使用锁.可以采用乐观锁来提高性能.

  2. 从缓存中获取到最新的库存信息,进行校验.

  3. 更新库存数据库.sql语句需要根据版本号来更新.

  4. 更新缓存数据.

  5. 创建订单.

总体采用:乐观锁设计+redis的原子性操作.

进一步提升的话,可以在校验完库存后,放入一个队列.然后用轮询或者websocket来获取结果通知.

Last updated

Was this helpful?