功能、适用范围与资源需求
写给要评估 SoftProbe 的人:它能做什么、适用于什么样的系统、对被测服务有什么影响、平台需要多少资源。
能做什么
| 功能 | 说明 |
|---|---|
| 流量录制 | 在 Java 服务的启动参数里加上 Agent,不改业务代码,就能录下入口请求、响应,以及对数据库、缓存、下游服务的调用 |
| 流量回放 | 把录下的请求发给测试环境的新版本;依赖调用可以用录制结果应答,测试环境不必准备全部依赖 |
| 自动对比 | 逐字段对比录制和回放的结果,用对比规则忽略时间戳、随机 ID 等每次都变的字段 |
| 回放报告 | 给出结论,把没通过的用例按原因分类;接入 AI 诊断后,自动分析差异是否由代码改动引起,并定位到代码。可导出 Excel、PDF |
| 固化用例 | 把重要的录制长期保留,反复回放 |
| 定时回放、流水线回放 | 每天定时自动回放;发版后由流水线调用接口触发回放,按结论决定是否继续发布,结果推送到飞书、钉钉或自己的系统 |
| 数据保护 | 录制的报文加密后落库;在页面上查看时按规则脱敏显示 |
| 多种使用方式 | 控制台、sp 命令行、回放触发 Open API;AI 代理可以通过命令行操作 |
适用范围
- 语言:Java,JDK 8、11、17、21。
- 框架和中间件:常见的 Web 框架、HTTP 客户端、数据库访问、缓存、RPC 框架都支持,完整清单见 支持的 Java 版本与框架。清单外的框架,由 SoftProbe 在接入前评估和适配。
- 回放入口:HTTP/HTTPS,以及 Dubbo 等 RPC 入口。
- 部署:SoftProbe Cloud;或私有化部署在单台服务器(All-in-One)或 Kubernetes 上,可完全离线运行。
对被测服务的影响
| 关注点 | 说明 |
|---|---|
| 接入方式 | 启动参数加 -javaagent 等几个参数,重启服务;不改代码,不需要额外的服务器 |
| 内存 | Agent 与服务共用 JVM 内存,请为服务预留约 512 MB;报文很大(MB 级)或调高采样率时多留一些 |
| 录制量 | 默认每个实例、每个接口每分钟约录 1 条,不是全量;可在「录制配置」里调整 |
| 上报方式 | 录制数据由后台线程上报,业务请求不等待网络;缓冲区满时直接丢弃,不等待空位 |
| 平台出故障时 | 待上报数据放在有上限的内存缓冲区里,满了就丢弃新数据,不会无限积压;上报连续失败时自动降低采样率,平台恢复后自动恢复,不需要重启服务。详见 接入 Java Agent — 生产环境保护 |
| CPU、内存偏高时 | Agent 自动进入保护状态,降低采样率,直到占用回落 |
| 回退 | 去掉新增的启动参数,重启服务即可恢复原状 |
回放对目标服务的压力
- 默认每秒最多向目标发 5 条请求(回放计划里的一个目标地址按一个实例算)。在「回放配置」里可以修改默认值。
- 单次回放可以选择:标准(遇到错误自动降速)、串行(一条跑完再发下一条),或固定总 RPS(压测用)。标准模式可以设倍速,0.25× 到 4×。
平台资源
单机部署(All-in-One),整套平台装在一台 Linux 服务器上(x86_64 或 arm64):
| 项目 | 建议 | 说明 |
|---|---|---|
| CPU | 8 核,最低 4 核 | 核数越多,同时能处理的回放和对比越多 |
| 内存 | 16 GB | 不使用 AI 诊断时 8 GB 即可 |
| 磁盘 | 100 GB | 主要存放录制数据和日志,按保留期自动清理;报文很大、接口很多或采样率很高时需要更多 |
准备清单和网络策略见 部署前准备;Kubernetes 部署的资源需求见 Kubernetes 部署(Helm)。
数据安全
- 录制的请求和响应报文加密后写入数据库,支持 AES-GCM 和国密 SM4-GCM。标准镜像和 Helm 部署默认开启;密钥在部署时配置。
- 脱敏只影响页面展示:在控制台查看报文时,按规则把敏感字段打码。数据库里保存的是加密后的完整报文,回放需要原始报文。
- 私有化部署时,数据保存在你自己的服务器上;不启用 AI 诊断和消息通知时,平台不需要访问互联网。