ice-dubbo-thrift-grpc性能测试对比,本次测试过程中还发现了一个支付宝的秘密,附件文档中会详细说明。测试说明 本测试只是个人为了对rpc进行技术选型,测试可能不够严谨,对某些rpc的参数可能也不是最优,如果你知道更优的参数配置或者改进意见等,欢迎反馈给我。另外代码有些地方只是为了测试方便,不作为平时编程的范例。所有测试源码和运行均一起提供在附件里。
测试源码工程可用idea打开,其中dubbo,grpc需要maven支持。运行只需要运行对应bat脚本。如果想测试更多场景,可以直接改脚本的并发数和调用次数。
测试人南哥 mycat核心commiter
系统环境 jdk:jdk1.8.0_51x64
ice:ice3.6
dubbo:dubbox 2.8.4
thrift:0.9.2
grpc:0.7.1
测试结果1客户端测试结果如下所示:从数据可以看出ice,thrift的tps最高,ice是thrift的1.4倍,是dubbo的3.2倍,是grpc的4.7倍
5客户端并发测试结果如下所示:从数据可以看出ice,thrift的tps最高,ice是thrift的1.5倍,是dubbo的3.6倍,是grpc的4.5倍
20客户端并发测试结果如下所示:从数据可以看出ice,thrift的tps最高,ice是thrift的1.3倍,是dubbo的3.7倍,是grpc的5.5倍
50客户端并发测试结果如下所示:从数据可以看出ice,thrift的tps最高,ice是thrift的1.5倍,是dubbo的4倍,是grpc的5.9倍
100客户端并发测试结果如下所示:从数据可以看出ice,thrift的tps最高,ice是thrift的1.6倍,是dubbo的4.4倍,是grpc的6倍
总结 从测试结果可以看出ice的tps遥遥领先,而且并发越高tps比其他越高,其次thrift,而dubbo和grpc则差了很多。grpc最差估计跟用了http2有关。从功能完备性来说ice和dubbo都算比较完备,都有大型生产案例,thrift的服务化功能比较缺失,grpc可能还不够成熟。
dubbo的插件化机制的确不错,ice初次接触有些概念比较晦涩,经过封装和有详细的资料后要好上许多。另外dubbox还支持rest,官方测试rest比kyro要慢1.5倍,本次未对rest测试。
另外《zeroc ice权威指南》作者leader-us对ice的测试结果如下:
leader-us测试结果ice则是2.5万,性能差不多是avro的一倍,综合起来看avro和thrift的性能应该差不多。
本帖只摘录了一部分内容,完整测试报告以及源码详见附件的word文档。
由于论坛限制,完整文档下载,文档比较大因为包含了源码和运行程序
如果百度云的连接失效,请到mycat的qq群共享里下载,群号:228044360