04小节:压测优惠券推送任务分发性能
作者:程序员马丁
note
热门项目实战社群,收获国内众多知名公司面试青睐,近千名同学面试成功!助力你在校招或社招上拿个offer。
压测优惠券推送任务分发性能,元数据信息:
- 什么是牛券oneCoupon:https://t.zsxq.com/pAWgS
- 代码仓库:https://gitcode.net/nageoffer/onecoupon —— 申请项目权限参考上述牛券项目链接
- 章节难度:★★★☆☆ - 较难
- 视频地址:文档先行视频次之
©版权所有 - 拿个offer-开源&项目实战星球专属学习项目,依据《中华人民共和国著作权法实施条例》和《知识星球产权保护》,严禁未经本项目原作者明确书面授权擅自分享至 GitHub、Gitee 等任何开放平台。违者将面临法律追究。
课程目录如下所示:
- 测试注意事项
- 压测环境
- 压测结果
测试注意事项
因为咱们优惠券分发功能不存在很大的并发行为,所以我们的测试路径是在指定数量下的分发性能,比如为 100 万用户分发优惠券需要多久?
前情回顾一下,在 v1 版本的基础上,通过引入批处理和保存失败记录的逻辑,大幅提升了业务执行性能,并支持查看 Excel 分发的错误记录。相同的 5000 条记录,v1 版本执行时间约为 1 分钟,而 v2 版本仅需 1 秒,实现了接近 60 倍的性能提升。
如果正常来说执行 100 万条记录是除以 5000 等于 200 秒,具体中可能会有相关变化,我们一起拭目以待。
压测环境
软件架构中,系统设计是一部分,基础设施是一部分。系统设计一般就是看我们的代码和架构是如何运作的,比如代码中运行了先查询缓存 Redis 再查询数据库 MySQL,防止缓存击穿和穿透等设计。基础设施指的是部署的规格,比如 Redis 什么配置、MySQL 什么配置、部署了几台牛券 oneCoupon 服务以及每台部署机器的配置是多少。
在和面试官说时,一定要先明确自己的部署配置,比如:
- 在自己本地电脑上进行的测试,电脑配置 MacBook M2 Max 12C64G。
- 启动牛券 DistributionApplication 和 MerchantAdminApplication 服务。
RocketMQ 我用自己电脑跑的 Docker,理论上如果代码和 RocketMQ 跑在同一台服务器或者同一个网段下应该会更快。