性能测试 - 搭建线上的性能测试环境参考逻辑图

文章目录

  • [1. 搭建实时压测监控体系](#1. 搭建实时压测监控体系)
    • [1. 逻辑图 - 在 Windows 环境 + 云服务器 上构建 JMeter + InfluxDB + Grafana 实时压测监控体系](#1. 逻辑图 - 在 Windows 环境 + 云服务器 上构建 JMeter + InfluxDB + Grafana 实时压测监控体系)
    • 2.逻辑图
    • [3. 逻辑图 -场景:对一个部署在 Kubernetes 上的 Spring Boot 应用做压测](#3. 逻辑图 -场景:对一个部署在 Kubernetes 上的 Spring Boot 应用做压测)
    • [4.逻辑图 - 分布式](#4.逻辑图 - 分布式)
      • [使用 JMeter 分布式模式(Master-Slave) + Kubernetes 部署 Slave 节点](#使用 JMeter 分布式模式(Master-Slave) + Kubernetes 部署 Slave 节点)
    • [5. 实际工作部署](#5. 实际工作部署)
      • [实际工作中,JMeter 的使用方式分为两大类:](#实际工作中,JMeter 的使用方式分为两大类:)
  • 总结

✨✨✨学习的道路很枯燥,希望我们能并肩走下来!

编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。



本文开始

1. 搭建实时压测监控体系

1. 逻辑图 - 在 Windows 环境 + 云服务器 上构建 JMeter + InfluxDB + Grafana 实时压测监控体系

【注】推荐将 InfluxDB + Grafana 部署在同一台云服务器(Linux 更稳定,但 Windows 也可行)

JMeter 官方推荐使用 Backend Listener 写入 InfluxDB 2.x;

实际场景-需要多台压测机形成集群进行压测;

2.逻辑图

1.本地 Windows 用 JMeter 发起压测(向被测系统发请求)

2.JMeter 同时将性能指标实时发送到云上的 InfluxDB

3.在本地浏览器打开 Grafana 页面,即可实时查看压测监控结果

【注】关键点:Grafana 和 InfluxDB 部署在云上,但你从任何地方(包括本地)都能通过浏览器访问 Grafana 看板。

3. 逻辑图 -场景:对一个部署在 Kubernetes 上的 Spring Boot 应用做压测

prometheus,infshdb, grafana,jmeter是怎样的逻辑串联起来呢?

组件介绍:

组件 类型 核心作用
JMeter 压测工具 模拟用户请求,生成负载,并采集自身性能指标(TPS、RT 等)
InfluxDB 时序数据库(TSDB) 存储 JMeter 产生的压测指标数据(非被测系统!)
Prometheus 监控系统 + TSDB 监控被测系统(如 Java 应用、MySQL、K8s)的运行状态(CPU、内存、JVM、HTTP 请求数等)
Grafana 可视化平台 统一展示 InfluxDB(压测数据) + Prometheus(系统监控)的数据
Kuboard Kubernetes 管理 UI 国产 K8s 可视化管理工具(类似 Rancher),非监控组件
  1. JMeter 的双重角色

    对外:向 Spring Boot App 发起压力(模拟用户)

    对内:通过 Backend Listener 将 自身采集的指标(如每秒请求数、响应时间)写入 InfluxDB

  2. Prometheus 监控

    Prometheus 通过 Exporter 或 应用内嵌 metrics endpoint 采集:

    应用层数据:HTTP 请求 QPS、错误率、JVM GC 时间、线程数(需集成 Micrometer)

    系统层数据:Pod CPU/内存、Node 资源、网络 IO

    中间件数据:MySQL 连接数、Redis 命中率

    【注】Prometheus 监控的是"被测系统",而 InfluxDB 存的是"压测行为数据"

  3. Grafana 如何整合?

    添加 两个数据源(Data Source):

    InfluxDB → 展示 JMeter 压测曲线(TPS、RT)

    Prometheus → 展示被测系统资源使用(CPU、内存、JVM)

  4. Kuboard 是什么?

    定位:国产开源的 Kubernetes 可视化管理平台,更偏向运维操作台。

    功能:

    查看 Pod/Deployment/Service

    在线编辑 YAML

    日志查看、终端连接

    集成 Prometheus 监控图表(需额外配置)

4.逻辑图 - 分布式

使用 JMeter 分布式模式(Master-Slave) + Kubernetes 部署 Slave 节点

1.横向扩展 JMeter 压测能力 → 用多个 JMeter Slave 容器并行发压

2.统一收集压测指标 → 所有 Slave 将数据写入同一个 InfluxDB

3.集中监控被测系统 → Prometheus 抓取应用指标

4.统一可视化 → Grafana 展示压测 + 系统监控

5.Kuboard 仅作为 K8s 管理界面(非核心组件)

【注】

Master 不产生压力,也不写监控数据

每个 Slave 是独立的 JMeter 实例,需配置 Backend Listener

5. 实际工作部署

实际工作:将 JMeter 部署到生产环境(或类生产环境)并通过命令行执行压测

核心原则:自动化、可重复、可观测、可回溯

适用场景:

1.自动化性能回归测试

2.大促前容量验证

4.CI/CD 流水线集成

4.无人值守的稳定性测试(如 7×24 小时)

【注】"生产环境"通常指"与生产配置一致的预发/压测环境",极少直接在真实生产流量上压测。

实际工作中,JMeter 的使用方式分为两大类:

  1. GUI 模式(客户端 JMeter):主要用于 脚本开发、调试、小规模验证
  2. 命令行模式(非 GUI):用于 正式压测、自动化、大规模负载

标准工作流:JMeter客户端与命令行配合使用


总结

✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

相关推荐
咩咩啃树皮8 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
鱟鲥鳚8 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
富唯智能9 小时前
复合机器人 vs 工业人形机器人|工厂工序选型回本方案
经验分享
大模型码小白9 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
腾渊信息科技公司10 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
-XWB-11 小时前
【LLM】Agent Planning 完全指南:8 种纯 LLM 范式 + 8 种混合规划模式详解(二)
人工智能·经验分享·aigc·学习方法·ai编程
爱笑的源码基地11 小时前
高并发 Redis 缓存门诊HIS系统源码,含财务统计药房进销存
java·程序·门诊系统·诊所系统·云诊所源码
wuqingshun31415911 小时前
TCP超时重传机制是为了解决什么问题?
java
goodesocket13 小时前
手机LPDDR芯片测试座厂商适配性强
测试工具
努力的小雨13 小时前
实测 Doubao-Seed-Evolving:把 Windows 桌面图标做成一个会自己运转的小世界
经验分享·ai智能