利用 Java Agent 和 Instrument 技术录制线上流量
在做性能压测的时候,需要先准备好压测请求数据,可以采用人工制造的方式,也可以在线上录制流量,线下回放。这里,我们使用 Java Agent 和 Instrument 技术,做了一个代理 Agent 实现了不修改代码即可录制线上请求数据的功能。
Java Instrument 技术
Java Instrument 技术怎么用这里就不重复了,网上文章很多,可以看看这篇:Java SE 6 新特性 Instrumentation 新功能。
遇到的难题
下面我们讲一下在开发 Agent 过程中遇到的难题。
自动打包依赖
录制 Agent 依赖的一些包,也要一同打包,否则在加载代理执行时会出现找不到类的问题。具体怎么做呢?可以在 pmo.xml 加上下面的配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<!-- manifestEntries 用于配置打包生成 MANIFEST.MF 文件所需的描述信息ÿ