【流量錄制】基于grpc協議的流量錄制
一、場景
由于公司的車云交互,采用的是grpc協議,所以希望在進行接口測試和流量錄制
二、方案
目前開源的方案,并沒有太多直接支持的工具,調研了goreplay, nginx-mirror, MoonBox, JVM-sandbox-repeater, tcp-replay等
基本上沒有直接支持grpc協議的,基本都需要proto文件
goreplay, 開源版本只支持http協議, 基于原始網絡流量錄制。
ngx_http_mirror_module,只支持http協議。
MoonBox,基于JVM-sandbox-repeater, 支持java生態, 但是我們的服務有python服務。
tcp-replay, 基于原始數據流量, 部署比較麻煩。
三、可用方案
1、基于原始流量(需要自定義開發)
GitHub - yuwendoris/goreplay-grpc
2、基于原始流量及反射機制(相對完善)
https://github.com/vearne/grpcreplay
3、基于tcpdump錄制數據包和proto文件解析(需要自定義開發)
基于python的網絡庫解析數據包和grpc庫的轉換方法實現
需要了解http2協議和協議幀
關于http2協議
grpc-go徹底弄清http2協議如何解析_reauired settings preface not received-CSDN博客
參考鏈接:
grpcreplay package - github.com/google/go-replayers/grpcreplay - Go Packages
在 Kubernetes 中實現 gRPC 流量的鏡像和對比 | Yeqown
【親測免費】 Google Go Replay 工具集使用指南-CSDN博客

浙公網安備 33010602011771號