xmall icon indicating copy to clipboard operation
xmall copied to clipboard

【BUG】商品库存超售问题

Open Exrick opened this issue 6 years ago • 0 comments

目前方案存在的问题,为什么

  • 虽然MySQL任意隔离级别都可避免更新丢失,但并发量高的时候仍会存在数据库的丢失更新造成超售问题

如何解决/优化

  • 隔离级别最高SERIALIZABLE,但串行不可取
  • 乐观锁 update x set num = x where id = x and num = 原库存数,单表推荐
  • 若要处理多个表可使用分布式锁,参考xboot项目
  • 秒杀场景:使用Redis事务+watch

Exrick avatar Apr 08 '20 08:04 Exrick