当前位置: 首页 > article >正文

goreplay流量重放备忘

go 环境

下载go

https://studygolang.com/dl

解压

tar -C /usr/local -zxvf go1.21.4.linux-amd64.tar.gz

环境变量

vim /etc/profile
export GOROOT=/usr/local/go
export PATH= P A T H : PATH: PATH:GOROOT/bin
source /etc/profile

验证

go version

goreplay环境

下载

https://github.com/buger/gor/releases

看自己要的版本,mac用下面
https://github.com/buger/goreplay/releases/download/1.3.3/gor_1.3.3_mac.tar.gz

官方代码

https://github.com/buger/goreplay/tree/master

中间件示例

https://github.com/buger/goreplay/blob/master/examples/middleware/echo.java

核心参数

input 参数
–input-raw :用来捕捉http流量,需要指定ip地址和端口
–input-file : 接收流量
–input-http :用来捕捉http流量,需要指定ip地址和端口
–input-tcp :将多个Goreplay实例获取的流量聚集到一个Goreplay实例
–input-raw-track-response

output 参数
–output-http :流量释放的对象server,需要指定IP地址和端口
–output-file : 录制流量时指定的存储文件
–output-tcp :将获取的流量转移至另外的Goreplay实例
–output-stdout :终端输出

模式

  • 服务转服务
  • 服务转文件
  • 文件转服务

性能

指定流量的百分比
——200%表示放大2倍

过滤

gor --input-raw :8080 --output-http staging.com --http-allow-url /api ——指定URL,只同步/api路径下的请求

gor --input-raw :8080 --output-http staging.com --http-disallow-url /api ——同步除了/api路径下的其他请求

gor --input-raw :8080 --output-http staging.com
–http-allow-header api-version:^1.0\d ——允许的header请求头

gor --input-raw :80 --output-http “http://staging.server” --http-allow-method GET \
–http-allow-method ——允许的请求方法

请求重写

gor --input-raw :8080 --output-http staging.com --http-rewrite-url /v1/user/([^\/]+)/ping:/v2/user/$1/ping
——重写请求url,转发到staging.com环境时,url将变成重写的url
gor --input-raw :8080 --output-http staging.com --http-set-param api_key=1
——重新设置url参数
gor --input-raw :80 --output-http “http://staging.server” --http-header “User-Agent: Replayed by Gor”
–http-header “Enable-Feature-X: true”
——重新设置Header

中间插件 middleware

sudo ./gor --input-raw :38085 --output-file ‘requests-%Y-%m-%d-%H.gor’ --middleware /Users/zlding/work/tools/goreplay/goreplay-1.0-SNAPSHOT-jar-with-dependencies.jar --output-http-track-response --input-raw-track-response

sudo ./gor --input-raw :38085 --output-file ‘requests-%Y-%m-%d-%H.gor’ --middleware “java -cp .:lib/commons-codec-1.15.jar -verbose cn.dails.Echo” --output-http-track-response --input-raw-track-response

sudo ./gor --input-raw :38085 --output-file ‘requests-%Y-%m-%d-%H.gor’ --middleware “python3 echo.py” --output-http-track-response --input-raw-track-response

sudo ./gor --input-raw :38085 --output-file ‘requests-%Y-%m-%d-%H.gor’ --middleware “java -jar goreplay-1.0-SNAPSHOT-jar-with-dependencies.jar” --output-http-track-response --input-raw-track-response

./gor --input-raw :38085 --output-file=requests.gor
./gor --input-raw :38085 --output-file=requests-%Y-%m-%d-%H.gor --http-disallow-url /static
./gor --config-file=service_to_file.yml

–output-http-track-response and --input-raw-track-response

mvn clean compile assembly:single

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home
PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
export JAVA_HOME
export PATH


http://www.kler.cn/a/288721.html

相关文章:

  • 大厂的 404 页面都长啥样?看看你都见过吗~~~
  • 【121. 买卖股票的最佳时机】——贪心算法/动态规划
  • Microsoft 365 Exchange如何设置可信发件IP白名单
  • Redis - 集群(Cluster)
  • 蔚来Java面试题及参考答案
  • AWS认证SAA-C0303每日一题
  • sqlite3的db.serialize方法:确保数据库操作串行化的利器
  • Autosar OS基础知识导图
  • 根据xml模板导出excel
  • Gitee镜像关联GitHub仓库
  • 【MySQL-24】万字全面解析<索引>——【介绍&语法&性能分析&使用规则】
  • 数据库:实验六存储过程
  • websocket:两台PC间数据传输
  • Leetcode 146. LRU 缓存(Medium)
  • 【知识库系列】MPR/多模态方向观察:图像视频与3D生成
  • 你的专利真的值钱吗?五重标准检验,让你的创新价值飙升
  • 深度学习:革新药物心脏毒性预测的新篇章
  • 局域网通信时,解决在一些设备上NsdManager发现服务失败的问题
  • 9_3_LineEdit
  • 抓取海外电商平台数据时,是否最好使用当地的IP?
  • 基础闯关4
  • 数学建模常用工具总结
  • 关于Linux(CentOS 7)中的用户sudo命令
  • 知识付费小程序搭建:开启知识变现新时代
  • 采用SIP封装的传感器系列:ARS19510LUBBTN、A19520LUBBTN、A1696PKHTN、A1694PKLN-RNZBE(资料)
  • Learning——protobuf的下载