跳转到内容

多元版 · 性能压测报告

工具:阿里云 PTS。提交订单会同步 ES/Mongo,单机中间件开销明显。SaaS 多租户不改变这条扩展曲线,但 Nacos / MQ / ES 必须跟上。压测过程无 Error,JVM 正常。购买机器更应注重 CPU 核心数。

应用 8 核 32G + RDS 8 核 16G。

PTS 单机

指标 结果
TPS 平均 / 峰值 440 / 502
平均 RT 910 ms
成功率 100%
异常 0
总请求 5.2 万
RDS CPU / 内存 约 18% / 20%

流程:扣库存并写 MySQL → Canal 发 MQ → 同步 ES(搜索)与 Mongo(统计)。Canal、RocketMQ、ES、Mongo 会占用单机性能。

只扩展订单服务(4 核 4G × N),中间件与其它服务保持足够余量。订单库与非订单库分 RDS;Redis 1GB。

订单服务台数 TPS 平均/峰值 总请求 成功率
1 682 / 769 8.1 万 100%
2 1311 / 1502 15.4 万 100%
4 2820 / 3022 33.5 万 100%

热路径:订单、商品库存、鉴权、搜索、用户。一台 RDS 对应 4 个订单服务时达到上限,继续扩容加 MySQL(或 PolarDB)。分库可通过配置扩容,旧数据需按分片规则迁移。

秒杀服务 4 核 4G × N。数据先写 Redis,异步落 MySQL。

秒杀服务台数 TPS 平均/峰值 总请求 成功率
1 2537 / 2790 30.2 万 100%
2 5079 / 5263 60.4 万 100%
4 9892 / 10202 117.7 万 100%
6 14389 / 14895 165.4 万 100%
8 18608 / 19436 221.4 万 100%

8 台后 Redis 成为瓶颈。再加一台 Redis 后两台 CPU 约 50%–60%。网关与鉴权会影响秒杀。TPS 约 1.8 万时优先加 Redis。

单机:TPS 2057 / 2321,平均 RT 242 ms,总请求 61.5 万。首次查 MySQL,后续走 Redis。

集群(product × N):1 台 2580/2748,2 台 4385/4644,4 台 8490/8976。Redis 打满后再扩 Redis。

单机关键词搜索慢于首页列表(分词);附近门店还要算距离。集群下 search 水平扩展近似线性;ES 数据节点与 search 数量建议约 3:2。搜索对 CPU 敏感。