基于Stream组进行的秒杀业务分析
基本流程图
使用Apifox测试
- 设置某店铺(id=1)有秒杀券(id=16),该优惠券有15个库存
- 在Apifox有100个用户并发请求购买该优惠券
数据库展示
优惠券详情表
- 可以看出库存数是:15
秒杀券订单进行清空
Redis删除该优惠券的用户列表
Redis更新该优惠券的库存是:15
后端代码修改
在/login接口中
- 使用了session进行验证码验证,在本次测试中注释这部分代码
Apifox设置
步骤一:请求登录接口获取token
步骤二:携带登录接口获取的token,作为Request Header值请求接口
步骤三:设置性能测试,并发用户数是100
结果
压测可视化结果
MySQL-优惠券库存表
- 可以发现id=16的优惠券,库存数是0,没有发生超卖问题
MySQL-优惠券订单表
- 可以发现仅产生了15个订单,验证了没有发生超卖问题
基于Stream组进行的秒杀业务分析
http://example.com/2024/06/01/基于Stream组进行的秒杀业务分析/