Lunarain_079's Inn

Back

参考文档:

https://www.cnblogs.com/imyalost/p/18034653

相关企业解决方案(仅供参考)

https://mp.weixin.qq.com/s/yll3QKBOWN_cZGENeQP1lw

https://javakk.com/2977.html

流量录制回放,就是通过录制线上的真实流量,然后在测试或者生产环境模拟请求进行验证的一种技术方法。

核心价值#

  • 避免压测工具生成的“假流量”与实际场景脱节,录制的用户流量符合实际场景。

  • 检测接口兼容性、性能瓶颈、数据一致性等问题。

  • 便于线上bug在测试环境的复现。

常见的流量录制方案#

  1. JVM-SANDBOX-Repeater :

通过阿里开源的 Jvm-Sandbox 实现字节码增强,无需修改应用代码即可拦截请求/响应**。**

优点:

  1. 无侵入,通过 -javaagent 参数动态加载 Agent 即可启用

  2. 基于字节码增强,仅录制关键调用链(如 HTTP 请求、RPC 调用、数据库操作),对生产环境影响较小。

  3. 支持 HTTP、Dubbo、Spring MVC、MyBatis、HttpClient 等主流 Java 技术栈的流量录制

  (因为是字节码增强,对性能还是有一定的损耗)

  1. ngx_http_mirror_module:

Nginx内部模块,提供流量复制功能,可以将生产环境的流量直接拷贝到预上线环境或测试环境

   优点:

  1. 也是无侵入,只需要进行nginx配置即可
  2. Nginx 处理镜像流量的性能开销极低

  (但是因为是nginx层面的设置,在网络层工作,仅复制原始请求,不包含业务逻辑中的上下文信息,如用户 ID、Trace ID,也不能捕获消息队列、定时任务等异步操作,更适合实时压测啥的)

流量重放存在的问题#

企业参考方案#

https://mp.weixin.qq.com/s/yll3QKBOWN_cZGENeQP1lw

转转这个基本就是用了JVM-SANDBOX-Repeater,全文也是在介绍相关技术

https://mp.weixin.qq.com/s/USM6mkVeEyOv6anwnyI0oQ

协程AREX平台

流量重放(流量录制回放)
https://www.lunarain.top/blog/%E6%B5%81%E9%87%8F%E5%BD%95%E5%88%B6
Author Lunarain_079
Published at May 11, 2025
Comment seems to stuck. Try to refresh?✨