Gor複製生產環境流量到測試環境

一、Gor簡介

Gor 是一款go語言實現的簡單的http流量複製工具,它的主要目的是使你的生產環境HTTP真實流量在測試環境和預發佈環境重現。只需要在 LB 或者 Varnish 入口服務器上執行一個進程,就可以把生產環境的流量複製到任何地方,完美解決了 HTTP 層實時流量複製和壓力測試的問題。對比在Nginx通過編寫lua腳本進行流量拷貝要更加簡單便捷,下載解壓後就可馬上使用。

二、Gor安裝

安裝包下載地址:https://github.com/buger/goreplay/releases

下載完成後,將解壓後的goreplay文件複製到/usr/bin下,就可以開始使用了

三、使用方法

1.基礎HTTP流量複製

將本機上80端口的流量全部複製到192.168.0.100的8080端口

goreplay --input-raw :80 --output-http 'http://192.168.0.100:8080'

2.HTTP流量複製頻率控制

將本機上80端口的流量複製到192.168.0.100的8080端口,每秒請求不超過10個

goreplay --input-tcp :80 --output-http "http://192.168.0.100:8080|10"

將本機上80端口的流量複製到192.168.0.100的8080端口,每秒請求不超過總數的10%

goreplay --input-raw :80 --output-http "http://192.168.0.100:8080|10%"

3.HTTP流量複製輸出到文件

goreplay --input-raw :80 --output-file requests.log

4.通過HTTP流量回放進行壓力測試

goreplay --input-file 'request.gor|200%' --output-http 'http://192.168.0.100:8080'

5.過濾指定url,進行HTTP流量複製

goreplay --input-raw :80 --output-http 'http://192.168.0.100:8080' --http-original-host --output-http-url-regexp test

6.過濾請求頭,進行HTTP流量複製

goreplay --input-raw :80 --output-http 'http://192.168.0.100:8080' --http-allow-header api-version:^1\.0\d

7.過濾http方法,進行HTTP流量複製

goreplay --input-raw :80 --output-http "http://192.168.0.100:8080" --http-allow-method GET --http-allow-method OPTIONS

8.將HTTP流量進行url重寫後再複製

goreplay --input-raw :80 --output-http 'http://192.168.0.100:8080' --http-rewrite-url /v1/user/([^\\/]+)/ping:/v2/user/$1/ping

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章