电商项目:商品秒杀系统我的理解

秒杀是电商平台的一种品牌推广、促销的一个高并发短期的一个活动。能够提升用户体验度和提升品牌知名度,
会在活动开始以前大力宣传,假如促销一百件商品,可能会吸引一万个用户同时在一个页面不断刷新,这里能够
用freemarker生成静态页,经过ajax动态获取必需的数据,等待活动时间开始,可是若是只在静态页进行对按钮的
限制,可能会出现有些用户修改电脑时间、前端js,致使出现提早抢购的状况。咱们采用的解决方案是在后台也进,
从页面去进行抢购要快得多,咱们经过定时器,在活动开始的时候生成一个随机字符串组成的密钥存入redis,在用
户刷新页面时,若是时间到了活动范围,会从redis中查出密钥放入隐藏域中而且开放按钮,在进入方法时,进行密
钥对比,若是密钥正确才能下单。在进行下单的时候,只有在支付成功后才算做真正的库存减小,可能两我的同时
下单,致使支付后的售出数量超过库存数量,出现货不够发的状况,为了不这种状况,咱们把库存数量分为可出
售库存数量以及锁定库存数量,咱们在下单的时候会对库存进行锁定,由于库存是存在redis中的,在下单的时候会
用redis提供的incr方法和decr方法对可出售库存以及锁定库存数量的改查变成一步,防止执行到一半时与其余用户
发生冲突,(举例),在订单成功支付后,再对锁定库存数量进行减小,而且经过MQ去异步存储到mysql,防止高
并发mysql服务器压力太大,遇到退单的状况,对锁定库存数量进行减小,再对可出售数量进行增长。前端

相关文章
相关标签/搜索