请问各位 grpc 接口,如何做压测呢用什么工具 可以用 jmeter 吗?
请问一下 grpc 接口可以封装成 RF 的关键字进行调用吗
压测,我们一般用 Java,自研的压测框架
grpc 协议,基于 HTTP/2 和 pb 协议,因此工具需要支持读取 pb 协议和 HTTP/2(正常来说这个可以忽略)。
我们这样做,使用 node js 写一个 http 服务,并且 封装一个 请求 grpc 接口的 function,node js 收到 http 请求后,马上调用 请求 grpc 接口的 function,并且返回 grpc 接口的 response 给 http 客户端。并且 node js 采用 master ,worker 模式,尽量让 node js 不会成为压测链路的瓶颈。调用链路如下:
wrk/ab/jmeter --> node js proxy --> grpc 服务
此模式,不局限 http --> grpc ,还可以 http --> websocket, http --> thrift 等等
可以考虑使用 jmeter 里面的 JavaSamplerClient 类
@weizhao1zhao 可以用 jmeter 。可以用 JavaSamplerClient(自己写 java 代码并打包给 jmeter )或者把 grpc 契约包打包成 jar 包,加入 jmeter 依赖后给 beanshell 使用。
后者相对灵活一些,但会有额外的性能损耗(beanshell 解析器的资源消耗)。
PB 的都需要自研的,目前我们是自研
https://www.jianshu.com/p/43fdfeb105ff?from=timeline&isappinstalled=0
先学一下 grpc python 客户端的实现方式,RF 部分就和 http 请求封装差不多了