5、提交订单
【秒杀抢购网 网购秒杀是什么意思】这一步流量已经第一步进行控制,提交到底以同步方式和异步方式取决于自己之前的系统设计 。
删除当前用户的下单token
6、token过期监控
token过期回滚秒杀活动数
压测分析:对于该场景的压测,我选择短时间高并发的压测,观察TPS和cpu占用情况 。
为什么选择短时间压测 。对于秒杀来说库存有限,如果采样器执行次数远远大于库存数,那超出库存数的大量请求都在有效性校验这块第一时间拦截,没有太大意义了 。
压测时间:60秒
并发数:50
库存3000
用户数:2w
同步接口测试
TPS 323/sec

文章插图
异步接口测试
TPS 548/sec

文章插图
cpu占用率对比

文章插图
从下单逻辑接口方案来比对异步方案明显高于同步方案 。cpu使用率略高于同步方案 。
库存分割存储方案优化:在我们上述的内容中,虽然购物车流程极大的提高了吞吐量,但是我们的秒杀库存是根据活动ID构建的redis存储key,那么当前这个秒杀活动的数据就只会存在一个Redis实例中 。如果在实际秒杀应用中,那么我们发起秒杀的接口在校验当前秒杀活动库存是否有效,或者业务逻辑都会将请求打到单台redis实例 。

文章插图
按照redis的最大承载并发量我们算每秒平均6w 。那么在大型秒杀平台,每秒并发量可能在几十万以上 。那么一台Redis难以承载 。

文章插图
针对于这个问题,我使用了分割的思想,在库存存的时候将库存分成多份,以及建立虚拟秒杀key 。

文章插图
在发起秒杀接口,首先查询redis当前秒杀key是否存在映射的虚拟key 。如果存在,则将对应数据记录到本地缓存,以及记录一个轮询计数 。
之后每次接收到秒杀请求先去缓存中轮询计算出一个虚拟key 。
这样就有效的将请求分散到不同的redis节点,实现了分而治之,也方便水平扩容 。
核心代码如下:
后台配置

文章插图
发起秒杀-查询映射key

文章插图
轮询虚拟key

文章插图
本文分享到此结束,如果有疑问,可以留言加关注 。谢谢。
- 热血传奇百区电信可以登录网通么 网通新开热血传奇
- 梦幻西游网页版官方网站 梦幻西游工具箱
- 如何看待作家方方的《武汉日记》英文版已在亚马逊网站预售?帝吧官微和方方开撕,你支持哪边?
- uc浏览网页版进入手机have IE浏览器登录入口
- 淘宝批发平台 淘宝进货网站
- 花王旗舰店哪个网站有 花王天猫旗舰店是真的吗
- 企业如何做好网络营销 企业为什么要做网络营销
- 求职网 求职网站有哪些?
- 网上成人用品店哪家好 开成人网店
- 网店模板 网店模板怎么制作
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
