Goreplay 使用方式
参数解释
- –input-raw :用来捕捉http流量,需要指定ip地址和端口
- –input-file :接收流量
- –output-file:保存流量的文件
- –input-tcp:将多个Goreplay实例获取的流量聚集到一个Goreplay实例
- –output-stdout:终端输出
- –output-tcp:将获取的流量转移至另外的Goreplay实例
- –output-http:流量释放的对象server,需要指定IP地址和端口
- –output-file:录制流量时指定的存储文件
- –http-disallow-url :不允许正则匹配的URL
- –http-allow-header :允许的Header头
- –http-disallow-header:不允许的Header头
- –http-allow-method:允许的请求方法,传入值为GET,POST,OPTIONS等
- –input-file-loop:无限循环,而不是读完这个文件就停止了
- –output-http-workers:并发请求数
- –stats --out-http-stats 每5秒输出一次TPS数据(查看统计信息)
- –split-output true: 按照轮训方式分割流量
- –output-http-timeout 30s:http超时30秒时间设置,默认是5秒
命令行使用
捕捉流量并通过终端输出
sudo ./goreplay --input-raw :8000 --output-stdout
上述命令将监控8000端口上所有的流量,并通过终端stdout输出。你可以通过浏览器或者curl访问8000端口,然后在终端查看gor输出所有的http请求。
捕捉流量并实时同步到另一台机器
sudo ./goreplay --input-raw :8000 --output-http="http://example:8001"
上述命令将8000端口的流量实时同步访问http://example:8001服务器,你在访问第一台服务器时,将看到流量以相同的顺序请求到第二台。
将捕捉流量保存到文件中,然后释放到其他机器
- 首先通过–output-file 保存流量(有时候实时同步流量是很难做到的, 所以Goreplay提供了这种先保存后释放的模式:)
sudo ./goreplay --input-raw :8000 --output-file = requests.gor
上述命令将8000端口的流量,保存到requests.gor文件中(必须是.gor后缀,其它后缀经测释放时有问题)。
- 释放保存的流量
sudo ./goreplay --input-file requests.gor --output-http = "http://localhost:8001"
上述命令将释放所有保存在requests.gor中的请求通过相同的时间顺序释放到服务器http://localhost:8001。

本文详细介绍了Goreplay的使用方法,包括如何捕捉HTTP流量、配置限速策略、请求过滤以及各种高级选项,如输出到终端、文件、远程服务器和数据压缩。适合进行压力测试和流量模拟的开发者参考。

777

被折叠的 条评论
为什么被折叠?



