【流量录制】基于grpc协议的流量录制

一、场景

  由于公司的车云交互,采用的是grpc协议,所以希望在进行接口测试和流量录制

 

二、方案

目前开源的方案,并没有太多直接支持的工具,调研了goreplay, nginx-mirror, MoonBox, JVM-sandbox-repeatertcp-replay等

基本上没有直接支持grpc协议的,基本都需要proto文件

goreplay, 开源版本只支持http协议, 基于原始网络流量录制。

ngx_http_mirror_module,只支持http协议。

MoonBox,基于JVM-sandbox-repeater, 支持java生态, 但是我们的服务有python服务。

tcp-replay, 基于原始数据流量, 部署比较麻烦。

 

 

三、可用方案

1、基于原始流量(需要自定义开发)

GitHub - yuwendoris/goreplay-grpc

Goreplay二开支持GRPC - 知乎

 

2、基于原始流量及反射机制(相对完善)

https://github.com/vearne/grpcreplay

 

3、基于tcpdump录制数据包和proto文件解析(需要自定义开发)

基于python的网络库解析数据包和grpc库的转换方法实现

需要了解http2协议和协议帧

 

关于http2协议

grpc-go彻底弄清http2协议如何解析_reauired settings preface not received-CSDN博客

 HTTP/2

 

参考链接:

grpcreplay package - github.com/google/go-replayers/grpcreplay - Go Packages

在 Kubernetes 中实现 gRPC 流量的镜像和对比 | Yeqown

【亲测免费】 Google Go Replay 工具集使用指南-CSDN博客

 

posted @ 2025-07-09 16:36  代码诠释的世界  阅读(33)  评论(0)    收藏  举报