基于Stream组进行的秒杀业务分析

基本流程图

image.png

使用Apifox测试

  • 设置某店铺(id=1)有秒杀券(id=16),该优惠券有15个库存
  • 在Apifox有100个用户并发请求购买该优惠券

数据库展示

优惠券详情表

  • 可以看出库存数是:15

image.png

秒杀券订单进行清空

image.png

Redis删除该优惠券的用户列表

image.png

Redis更新该优惠券的库存是:15

image.png

后端代码修改

在/login接口中

  • 使用了session进行验证码验证,在本次测试中注释这部分代码

Apifox设置

步骤一:请求登录接口获取token

image.png

步骤二:携带登录接口获取的token,作为Request Header值请求接口

image.png

步骤三:设置性能测试,并发用户数是100

image.png

结果

压测可视化结果

image.png

MySQL-优惠券库存表

  • 可以发现id=16的优惠券,库存数是0,没有发生超卖问题

image.png

MySQL-优惠券订单表

  • 可以发现仅产生了15个订单,验证了没有发生超卖问题

image.png


基于Stream组进行的秒杀业务分析
http://example.com/2024/06/01/基于Stream组进行的秒杀业务分析/
作者
Adam-LXD
发布于
2024年6月1日
许可协议