不得不承认Zeroc Ice是RPC王者: 完爆Dubbo,Thrift,谷歌RPC

不得不承认Zeroc Ice是RPC王者: 完爆Dubbo,Thrift,谷歌RPC

ice-dubbo-thrift-grpc性能测试对比,本次测试过程中还发现了一个支付宝的秘密,附件文档中会详细说明。
测试说明
    本测试只是个人为了对rpc进行技术选型,测试可能不够严谨,对某些rpc的参数可能也不是最优,如果你知道更优的参数配置或者改进意见等,欢迎反馈给我 [email protected]。另外代码有些地方只是为了测试方便,不作为平时编程的范例。所有测试源码和运行均一起提供在附件里。
    测试源码工程可用idea打开,其中dubbo,grpc需要maven支持。运行只需要运行对应bat脚本。如果想测试更多场景,可以直接改脚本的并发数和调用次数。  

测试人
南哥   mycat核心commiter      http://mycat.io/

系统环境                              
Jdk:jdk1.8.0_51x64
Ice:ice3.6
Dubbo:dubbox 2.8.4
Thrift:0.9.2
Grpc:0.7.1
测试结果 1客户端 测试结果如下所示:
  
Rpc
  
并发客户端
每客户端调用次数
总调用次数
执行时间
每秒调用数tps
ice
1
300000
300000
16s
18329
dubbo
1
300000
300000
52s
5675
thrift
1
300000
300000
23s
12832
grpc
1
300000
300000
77s
3896
从数据可以看出ice,thrift的tps最高,ice是thrift的1.4倍,是dubbo的3.2倍,是grpc的4.7倍
5客户端并发 测试结果如下所示:
  
Rpc
  
并发客户端
每客户端调用次数
总调用次数
执行时间
每秒调用数tps
ice
5
300000
1500000
20s
71575
dubbo
5
300000
1500000
77s
19371
thrift
5
300000
1500000
31s
47041
grpc
5
300000
1500000
95s
15722
从数据可以看出ice,thrift的tps最高,ice是thrift的1.5倍,是dubbo的3.6倍,是grpc的4.5倍
20客户端并发 测试结果如下所示:
  
Rpc
  
并发客户端
每客户端调用次数
总调用次数
执行时间
每秒调用数tps
ice
20
300000
6000000
68s
87375
dubbo
20
300000
6000000
256s
23354
thrift
20
300000
6000000
94s
63708
grpc
20
300000
6000000
382s
15675
从数据可以看出ice,thrift的tps最高,ice是thrift的1.3倍,是dubbo的3.7倍,是grpc的5.5倍
50客户端并发 测试结果如下所示:
  
Rpc
  
并发客户端
每客户端调用次数
总调用次数
执行时间
每秒调用数tps
ice
50
300000
15000000
165s
90679
dubbo
50
300000
15000000
676s
22157
thrift
50
300000
15000000
255s
58765
grpc
50
300000
15000000
987s
15186
从数据可以看出ice,thrift的tps最高,ice是thrift的1.5倍,是dubbo的4倍,是grpc的5.9倍
100客户端并发 测试结果如下所示:
  
Rpc
  
并发客户端
每客户端调用次数
总调用次数
执行时间
每秒调用数tps
ice
100
300000
30000000
361s
83014
dubbo
100
300000
30000000
1599s
18760
thrift
100
300000
30000000
597s
50211
grpc
100
300000
30000000
2186s
13721
从数据可以看出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文档。
由于论坛限制,完整文档下载 http://pan.baidu.com/s/1eQIY9xg,文档比较大因为包含了源码和运行程序
如果百度云的连接失效,请到mycat的qq群共享里下载,群号:228044360

你可能感兴趣的:(不得不承认Zeroc Ice是RPC王者: 完爆Dubbo,Thrift,谷歌RPC)