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

goreplay流量重放备忘

go 环境

下载go

https://studygolang.com/dl
在这里插入图片描述

例如: https://dl.google.com/go/go1.23.1.linux-amd64.tar.gz

解压

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/releases/download/1.3.3/gor_1.3.3_x64.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.mrgr.cn/news/22506.html

相关文章:

  • Linux 文件查找命令which,find详解
  • 使用SSH KEY
  • JavaFx生成树型结构
  • 键盘快捷键:提高工作效率与电脑操作的利器
  • ThreadLocal 释放的方式有哪些
  • 【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)
  • Go开源日志库Logrus的使用
  • Matlab simulink建模与仿真 第十一章(端口及子系统库)【下】
  • 衡石分析平台使用手册-单机安装及启动
  • 语音识别转文字工具:办公效率的得力助手
  • 【代码随想录】哈希表
  • 计算机毕业设计hadoop+spark+hive动漫推荐系统 动漫视频推荐系统 漫画分析可视化大屏 漫画爬虫 漫画推荐系统 漫画爬虫 知识图谱 大数据
  • SVD矩阵分解
  • Vue3项目开发——新闻发布管理系统(六)
  • 支持黑神话悟空的超长视频理解,Qwen2-VL多模态大模型分享
  • MATLAB算法实战应用案例精讲-【人工智能】大数据审计(概念篇)
  • 用户角色表
  • 2024年 9月8号 拼多多机试解题报告 | 珂学家
  • 【primereact如何在DataTable设置滑动,让表头始终在顶部】
  • SpringBoot:Thymeleaf集成