gor安装部署:
环境分配:
192.168.199.185 模拟线上环境
192.168.199.186模拟测试环境
192.168.199.187流量复制辅助服务器
现在要做的是把到192.168.199.185的http流量复制到192.168.199.186
gor下载地址:
https://github.com/buger/gor/releases
可下载二进制包直接解压使用,也可以下载源码包编译安装
本次试验直接使用二进制包,解压即可使用(为了方便,可以直接把gor加到环境变量)
使用gor自带功能进行简单测试:
通过gor启动一个http服务器,监控本机8000端口
gor file-server :8000
监听8000端口并打印到标准输出
gor --input-raw :8000 --output-stdout
访问本机8000端口测试
curl http://localhost:8000
试验开始:
192.168.199.185执行如下命令:
gor --input-raw :80 --output-tcp 192.168.199.187:28020
192.168.199.187
gor --input-tcp 192.168.199.187:28020 --output-http http://a.b.com #把192.168.199.185过来的流量导入到192.168.199.186
查看192.168.199.186 nginx访问日志,可看到流量已经复制过来
控制复制速率,每秒10个请求
gor –input-tcp :28020 –output-http "http://a.b.com|10"
复制10%流量
gor –input-raw :80 –output-tcp "192.168.199.187:28020|10%"
流量记录到本地文件
gor –input-raw :80 –output-file requests.gor --output-file-append #--output-file-append 参数表示流量只输出到一个文件,默认会分成多个文件
通过文件导入流量到测试服务器
gor --input-file requests.gor --output-http "a.b.com"
HTTP 流量回放和压测(200%表示以2倍的流量回放文件)
gor –input-file "requests.gor|200%" –output-http "a.b.com"
复制流量到多个服务器
gor --input-tcp :28020 --output-http "http://a.b.com"  --output-http "http://a.c.com"
测试结果:
1000个请求50个并发 丢包率25%左右,1000个请求1个并发,丢包率为0,经多次测试,并发越高,丢包率越高,丢包主要发生在线上服务器抓包阶段。
参考文档:
https://github.com/buger/gor/wiki