01小节:压测用户优惠券列表性能
作者:程序员马丁
热门项目实战社群,收获国内众多知名公司面试青睐,近千名同学面试成功!助力你在校招或社招上拿个offer。
压测牛券查询可用/不可用优惠券功能,元数据信息:
- 什么是牛券oneCoupon:https://t.zsxq.com/pAWgS
- 代码仓库:https://gitcode.net/nageoffer/onecoupon —— 申请项目权限参考上述牛券项目链接
- 章节难度:★★★☆☆ - 较难
- 视频地址:文档先行视频次之
©版权所有 - 拿个offer-开源&项目实战星球专属学习项目,依据《中华人民共和国著作权法实施条例》和《知识星球产权保护》,严禁未经本项目原作者明确书面授权擅自分享至 GitHub、Gitee 等任何开放平台。违者将面临法律追究。
课程目录如下所示:
- 压测注意事项
- 压测环境
- 压测结果
- Jmeter 压测脚本
压测注意事项
1. 什么是 QPS?
QPS 表示系统每秒能够处理的请求数量,可以理解为系统在一秒内处理了多少个查询(或请求)。常用于描述 接口 或 API 请求 的处理能力,通常与 Web 服务、数据库查询等相关。
比如电商网站的商品查询,整个商品服务集群,对外提供的查询接口,每秒支撑 8800 次,那就意味着这个接口 QPS 是 8800。
2. 什么是 TPS?
TPS 表示系统每秒处理的事务数量。事务通常是一组操作的集合,需要保证整个操作集的原子性(全部成功或全部失败)。常用于描述涉及数据库操作或复杂业务场景的系统,如下单、支付等需要数据一致性的场景。在分布式系统中,TPS 是一个更严谨的指标,因为它强调 事务完整性和一致性,而不仅仅是处理请求的数量。
比如电商网站的下单接口,整个订单服务集群,对外提供的下单接口,每秒支撑 2800 次,那就意味着这个接口 TPS 是 2800。
3. 并发量指的 QPS 还是 TPS?
并发量基本等于吞吐量概念,大家知道即可。那聊到并发量或者吞吐量,指的是 QPS 还是 TPS 呢?
如果项目即有 QPS 场景同时也有 TPS 场景,我们一般是将 TPS 的,因为 TPS 的相关技术亮点比较多。拿牛券项目举例,QPS 有优惠券可用/不可用列表,TPS 有兑换优惠券场景。简而言之,如果面试官问并发量,那么一般泛指牛券兑换优惠券接口。
如果问具体 TPS 或者 QPS 的话,我们可以分别回答兑换优惠券和优惠券可用/不可用列表接口。
压测环境
软件架构中,系统设计是一部分,基础设施是一部分。系统设计一般就是看我们的代码和架构是如何运作的,比如代码中运行了先查询缓存 Redis 再查询数据库 MySQL,防止缓存击穿和穿透等设计。基础设施指的是部署的规格,比如 Redis 什么配置、MySQL 什么配置、部署了几台牛券 oneCoupon 服务以及每台部署机器的配置是多少。
在和面试官说时,一定要先明确自己的部署配置,比如:
- 在自己本地电脑上进行的测试,电脑配置 MacBook M2 Max 12C64G。
- 启动了一个牛券 SettlementApplication 结算服务。
- 通过 Jmeter 配置了 80 个线程循环 1000 次压测,最终吞吐量 xxxx。