1. 测试环境CPU:Intel E5-2640 2.50GHz (8 cores)内存:16GB CentOS 6.5,Go 1.4、Gcc 4.4.6,开启tcp reuse, tcp recycle;
2.测试数据对比如下
一、 单进程下,长短连接,两个RPC框架和两大语言对比
![](https://img.haomeiwen.com/i7481339/bd71b77c6a3acb3d.png)
![](https://img.haomeiwen.com/i7481339/ee39a0ab435440a1.png)
二.多进程(线程,协程)下,两大RPC框架和两大语言对比
![](https://img.haomeiwen.com/i7481339/8e1bdb50cf589777.png)
总结:
1)Thrift框架性能比gRPC框架快两倍以上;
2)高并发场景下,使用Thrift框架,Go/C++性能相当,服务端单核处理能力可达3w/s。
3)Go语言性能强劲,语法上灵活、简单、清晰,易于发布和部署,可大规模应用于业务、运维、测试系统;(自动GC类语言,GC势必会影响业务逻辑执行性能,具体影响待海量业务下进一步验证)
4)gRPC做为Google开源出来的RPC框架,性能上明显低于Thrift; 但设计上更为规范,基于HTTP/2可以较好的网络适应及扩展,协议自带的流控等功能未能进一步测试;
网友评论