简介
thrift作为一种支持多语言的服务开发框架,具有很多优点,比如,体积小,功能多,扩展性强,支持多协议传输及编码等。同时,它又是一种RPC(Remote Procedure Call Protocol,即远程过程调用协议)类型的服务框架,非常适于开发可伸缩且耦合度低的集群服务。本文主要是使用多种语言对thrift提供的服务进行测试。点击这里是demo代码的github链接
机器条件
配置 | 说明 |
---|---|
CPU | Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz 单核 |
内存 | 2G |
安装
安装分两大部分,分别是thrift安装和各个语言对应的thrift包的安装。
- thrift安装(注意不同平台的安装方式不同) https://thrift.apache.org/tutorial/
- thrift的各个语言包安装
语言 | 语言包安装方法 |
---|---|
php | http://courages.us/archives/621 |
python | pip install thrift |
安装tips
- thrift –gen php:server hi.thrift(php需要生成服务端代码)
测试结果
执行3次简单的10000次hello请求,取3次耗时平均数为平均时长,做一个大概的统计。
客户端语言 | 服务端语言 | 每10000次所用时长(s) |
---|---|---|
php | python | 3.696 |
python | python | 2.837 |
php | php | 虽然,我的php server端代码能跑,但是缺少与python同等库,该部分时长比较,有失公允,故舍弃 |
python | php | 因为php缺少库,该部分时长比较,有失公允,故舍弃 |
除去以上结果外,python无论是client端,还是server端都非常易于实现。对于业务变动较快的API层,完全可以使用python进行快速开发,满足需求。