作者:有点难 | 来源:互联网 | 2024-10-21 11:02
前言抢购问题不仅是电商类项目中一个重要的业务,也是许多开发人员在进阶过程中绕不开的问题,关于抢购,如果理清了前后的逻辑和里面涉及到的几个关键性的问题,问题就迎刃而解了抢购中的几
前言
抢购问题不仅是电商类项目中一个重要的业务,也是许多开发人员在进阶过程中绕不开的问题,关于抢购,如果理清了前后的逻辑和里面涉及到的几个关键性的问题,问题就迎刃而解了
抢购中的几个常见问题
- 如何设计抢购功能?(表结构,以及整体的抢购思路)
- 不借助中间件如何实现抢购?(不借助redis)
- 怎么利用redis解决抢购中的超卖问题
- 怎么提升抢购的整体并发?
上图是抢购中的两个重要步骤,对于抢购用户,抽象来讲,服务端只需要完成对待抢购商品的锁定以及锁定后的下单操作即可
分开来说,商品名额锁定阶段,活动期间待抢购商品数量是有限的,参与抢购的用户数可能很大,因此必然存在高并发问题
既然存在高并发,为了提升整体的并发性能还能兼顾系统不至于崩溃,使用数据库作为秒杀抢购显然不合适,高并发场景下数据库IO将成为性能瓶颈,如此一来,参与抢购的活动涉及到的商品需借助redis来实现
抢购过程中,为保证公平,我们希望一个用户只能抢一单,但是在高并发场景下,用户数远大于商品数,