$ cd <TOOL_HOME>/conf
# 第一步:样例文件拷贝为thrift.env
$ cp xxx_sample.env thrift.env
# 第二步:检查并修改文件内容,其中client_jar为准备SDK阶段得到的Jar包
$ vim thrift.env
启动工具
环境文件准备完毕,待测服务也在运行,可以通过命令进行压测,示例如下:
$ cd <TOOL_HOME>/bin
$ sh benchmark.sh [options] thrift://<host>:<port>/<service>/<method>[?@<data_file>]
#示例: sh benchmark.sh thrift://127.0.0.1:8972/DemoService/noArgMethod
benchark-thrift
benchmark-thrift是一款测试
Thrift应用程序性能的工具,开箱即用,高效简单。主要特点
下载与安装
环境说明
已在Mac、Centos等环境上多次测试,但其他环境上测试尚不充分,暂不支持Windows。 需要JDK 8或更高版本的Java运行环境。下载方法
点击这里下载最新版本下载完成后,在合适的目录解压缩即可。
本文档后见的<TOOL_HOME>,表示该工具的安装目录*快速上手(运行第一个thrift压测)
使用工具自带的例子,您只需三步,就可以运行第一个Thrift压测。
使用说明
运行之前,请确保对Thrift协议有一定的了解。Thrift远程调用需要匹配版本、TTranport、TProtocol类型,调用方还要拿到SDK(Jar、go module、或者IDL文件),相比HTTP协议,更为复杂。
为简化操作,抽取了”环境文件”的概念,包含不常变化的Thrift版本、TTransport及TProtocol类型等配置项。
准备SDK
Thrift调用需要待测服务的SDK,本工具使用Java开发,因此需要准备Jar包。如果Jar包已生成,请忽略本小节。否则请自行生成或参考本工具提供的Jar生成器生成Jar包,具体操作如下:
注:以后工具会提供只需IDL文件、免SDK的功能。准备环境文件
工具默认会读取conf/thrift.env环境文件,您也可以通过
-e <environment file>手工指定。conf目录下提供了几个样例环境文件,推荐在样例的基础上进行适当修改:启动工具
环境文件准备完毕,待测服务也在运行,可以通过命令进行压测,示例如下:
启动参数选项
下面是命令行启动参数及用法说明,也可以通过
sh benchmark.sh -h进行了解。-e 环境文件,包括TTransport、TProtocol、client_jar等。若未指定,则默认读取
conf目录下的thrift.env-q 吞吐量 QPS
-c 并发度 如果QPS和并发度都不指定,默认按1个并发进行测试
-t 持续时间 如果不指定,默认压测持续60秒。
-v 打印版本号
-h 打印帮助信息
Where: data_file表示为一个包含方法参数的本地文件,通过使用
@识别为文件,如果目标服务的方法含有参数,那么必须指定参数文件,文件路径为绝对路径。文件内容应该为一行表示方法的一个参数FAQ
-e <environment file>指定环境文件时,是相对路径还是绝对路径?答:二者均可,如果是相对路径,是相对于当前目录
答:二者均可,如果是相对路径,是相对于该环境文件所在的目录
no matches found: thrift://xxx/xxx/xxx/xx?@xxx?答:是因为Thrift url中的?需要转义,请用
\?替换掉?团队成员
主要负责人
王松, 张晓庆, 黄东
主要成员
潘旭东, 孟翔鹤哲, 苗星, 邓超升
贡献
请参阅贡献指南。
许可证
benchmark-thrift是根据ApacheLicense2.0授权的。请参阅许可证文件。