思路方案
将库存,已售数据,乐观锁标记versionId存入缓存.在更新库存的时候,为了避免并发更新导致超卖,一般会使用锁.可以采用乐观锁来提高性能.
从缓存中获取到最新的库存信息,进行校验.
更新库存数据库.sql语句需要根据版本号来更新.
更新缓存数据.
创建订单.
总体采用:乐观锁设计+redis的原子性操作.
进一步提升的话,可以在校验完库存后,放入一个队列.然后用轮询或者websocket来获取结果通知.
Last updated
Was this helpful?
将库存,已售数据,乐观锁标记versionId存入缓存.在更新库存的时候,为了避免并发更新导致超卖,一般会使用锁.可以采用乐观锁来提高性能.
从缓存中获取到最新的库存信息,进行校验.
更新库存数据库.sql语句需要根据版本号来更新.
更新缓存数据.
创建订单.
总体采用:乐观锁设计+redis的原子性操作.
进一步提升的话,可以在校验完库存后,放入一个队列.然后用轮询或者websocket来获取结果通知.
Last updated
Was this helpful?