1:什么是秒杀系统
秒杀系统:就是网络商家为促销商品,以低价格商品卖出做的限时限量抢购活动
2:秒杀系统可以解决什么问题,用在哪些场景
解决问题:解决网络商家快速促销商品,以低价格商品卖出做的限时限量抢购活动
应用场景:商品抢购
3:秒杀系统会出现什么问题,解决方案
出现的问题:1:并发量大 2:防止超卖 3:防止同一用户重复购买
并发量大解决方案:
前端层:静态化商品详情数据,禁止重复提交抢购按钮,在单位时间段做IP限流
服务层:因为是秒杀,所以是一个多用户参加,少量用户抢购成功的操作,在服务层就是一个查多写少业务流程,由于查询过程较多,频繁查询数据库可以使数据库宕机
所以我们可以将商品的库存数据放入缓存Redis中,用户抢购商品下单,下单时就扣减缓存中的库存数量,当库存数量等于0或者活动期结束,则无法秒杀,秒杀下单成功后
直接跳转到支付页面,若支付成功就填写收货人信息,更新数据库商品库存数据和新增用户订单数据
若取消订单或者超时支付订单,则关闭调用支付接口,恢复缓存库存
防止超卖解决方案
防止同一用户重复购买解决方案
当用户进行下单操作时,先判断Redis中是否有预支付订单信息,如果有怎提醒先支付已买商品,如果没有预支付订单信息,则用户下单后向Redis存放一个预支付订单信息