欢迎您光临本小站。希望您在这里可以找到自己想要的信息。。。

ZEROC ICE是RPC王者: 完爆DUBBO,THRIFT,谷歌RPC

架构&设计模式 water 2554℃ 0评论

ice-dubbo-thrift-grpc性能测试对比,本次测试过程中还发现了一个支付宝的秘密,附件文档中会详细说明。


测试说明

    本测试只是个人为了对rpc进行技术选型,测试可能不够严谨,对某些rpc的参数可能也不是最优,如果你知道更优的参数配置或者改进意见等,欢迎反馈给我magicdoom@gmail.com。另外代码有些地方只是为了测试方便,不作为平时编程的范例。所有测试源码和运行均一起提供在附件里。

    测试源码工程可用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的性能应该差不多。

转载请注明:学时网 » ZEROC ICE是RPC王者: 完爆DUBBO,THRIFT,谷歌RPC

喜欢 (1)or分享 (0)

您必须 登录 才能发表评论!