Arion——gRPC Test Tool

Posted 搜狗测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arion——gRPC Test Tool相关的知识,希望对你有一定的参考价值。

前段时间遇到了一个gRPC压测的需求,其中用到了gRPC服务,在这里和大家介绍下。

gRPC一开始由 google 开发基于http2.0协议,protobuf来定义服务,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。

基于http2.0协议http1.1协议的最大区别多路复用

什么是多路复用呢?

图中可以看出,HTTP2.0允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。

gRPC基本框架如下:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型),在服务端实现调用接口并运行一个gRPC服务器来处理客户端调用在客户端用同样的方法进行数据解析转换。

Arion——gRPC Test Tool

 

gRPC以下四种通信模式:

1,简单模式:客户端发送一个对象,服务端返回一个对象

Proto文件

rpcStudentAdd(StudentResponse)returns(ResultResponse){};//gRPC简单模式

2,客户端流模式:客户端发送Stream对象,服务端返回一个简单对象

Proto文件

rpcGetHelloTest(streamStudentRequest)returns(ResultResponse){};//客户端流模式(客户端发送stream

3,服务器端流模式:客户端发送一个对象,服务端返回一个Stream对象

Proto文件

rpcGetNxinMethod(StudentRequest)returns(streamResultResponse){};//服务端流模式(从服务端返回stream

4,客户端和服务端都传输的是Stream对象

Proto文件

rpcGetStudent(streamStudentRequest)returns(streamResultResponse){};//双向流模式

 

本次项目中用到的是第三种模式:服务流模式,客户端发送的是2加密的proto文件

压测时主要考虑的点有:

1    服务同时支持的客户端连接数。

2    服务支持的最大请求/响应数。

经过网上查找,找到了一款Arion的压测工具在此感谢作者dave开源工具

1)        Arion的主要功能有:

  • Get information of gRPC services / endpoints / data types

  • Debug gRPC endpoints as curl or Postman(TM) does for HTTP

  • Do stress test on gRPC endpoints

  • Support both Unary and Streaming

2)       Get Arion

$ go get -u github.com/straightdave/arion

-u option would upgrade Arion if already installed.

3)       Build  Arion

Arion——gRPC Test Tool

4)       Generate  postgal

Arion——gRPC Test Tool

Arion——gRPC Test Tool

5)       读取endpoint

Arion——gRPC Test Tool

6)       模拟10客户端并发连接

$./postgal -e Courier#Suggest -B grpcbin_lingxizhida.lingxizhida -h 10.142.85.77:18380 -rate 15 -worker 15 -m server -x -duration 60s -N 10

更多具体用法请查看https://github.com/straightdave/arion

如果你也用到了gRPC服务,欢迎留言和我们一起交流。





以上是关于Arion——gRPC Test Tool的主要内容,如果未能解决你的问题,请参考以下文章

Android grpc 失败异常

「Protocol Buffer」之PB在gRPC中的应用

Visual Studio自动编译gRPC工程的设置

如何使用 python 客户端调用 knative 服务 [grpc 服务器]

GRPC负载均衡

编译gRPC