`
m635674608
  • 浏览: 5004364 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Zeroc Ice dubbo rpc测试

 
阅读更多

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的性能应该差不多。

 

本帖只摘录了一部分内容,完整测试报告以及源码详见附件的word文档。
由于论坛限制,完整文档下载http://pan.baidu.com/s/1eQIY9xg,文档比较大因为包含了源码和运行程序
 
http://5337kun.blog.163.com/blog/static/18853964201612245624186/
分享到:
评论

相关推荐

    基于Netty实现了dubbo rpc

    【标题】基于Netty实现Dubbo RPC 在分布式系统中,RPC(Remote Procedure Call)是一种常见且重要的通信机制,它允许一个程序调用另一个在不同进程中运行的程序,就像调用本地函数一样简单。Dubbo作为阿里巴巴开源...

    dubbo接口测试调试工具

    mmc-dubbo-provider dubbo提供者项目,主要用于测试。 mmc-dubbo-doe 主项目,实现dubbo接口调试。 deploy 部署文档 功能特性 极简模式:通过dubbo提供的telnet协议收发数据。 普通模式:通过封装netty客户端收发...

    从零开始手写 dubbo rpc 框架-12-generic泛化调用.pdf

    Dubbo RPC 框架 Generic 调用机制详解 Dubbo RPC 框架是一种基于 Netty 实现的 Java RPC 框架,主要用于个人学习和理解 RPC 底层实现原理。本文将详细介绍 Dubbo RPC 框架中的 Generic 调用机制。 Generic 调用...

    Dubbo RPC框架原理解析和源码

    Dubbo是一款由阿里巴巴开源的高性能Java RPC框架,它在分布式系统中起到了服务调用的核心作用。RPC(Remote Procedure Call)允许一个程序调用另一个在不同网络计算机上的程序,就像调用本地函数一样简单。Dubbo的...

    微服务 spring dubbo项目:dubbo rpc;druid数-spring-dubbo-service.zip

    druid数-spring-dubbo-service.zip" 这个标题表明我们正在处理一个基于Spring和Dubbo框架的微服务项目,其中涉及到Dubbo的远程过程调用(RPC)机制。此外,提到了“druid数”,这通常指的是Druid数据源,它是一个...

    dubbo_rpc.zip

    《Dubbo RPC框架详解与实践》 Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了丰富的服务治理功能,如服务注册、服务发现、负载均衡、容错机制等,是阿里巴巴贡献给社区的重要开源项目。本资料包旨在帮助...

    dubbo.rpc.demo.rar;dubbo双模块RPC调用,附源码及编译后内容,解压即可用

    dubbo.rpc.demo.rar;dubbo双模块RPC调用,附源码及编译后内容,解压即可用;dubbo.rpc.demo.rar;dubbo双模块RPC调用,附源码及编译后内容,解压即可用;dubbo.rpc.demo.rar;dubbo双模块RPC调用,附源码及编译后...

    ice-dubbo-thrift-grpc性能测试对比

    本文主要分析了四种常见的RPC框架——ice、dubbo、thrift和grpc的性能表现,通过一组简化的并发测试,对比了它们在不同并发情况下的处理能力。 首先,测试的目的是为了技术选型,虽然测试可能不够严谨,但仍然可以...

    dubbo 分布式rpc调用示例代码

    dubbo 分布式rpc调用示例代码,需在本地安装好zookeeper,然后启动,启动provider,main 方法在test\java\Provider.java里面,在启动consumer,OrderService类,即可看到调用的输出

    nodejs使用原生的dubbo协议打通了dubbo的rpc方法调用.

    标题中的“nodejs使用原生的dubbo协议打通了dubbo的rpc方法调用”意味着在Node.js环境中,开发者成功地实现了对Dubbo服务的RPC(远程过程调用)访问,利用了Dubbo协议的特性。Dubbo是阿里巴巴开源的一个高性能、轻量...

    dubbo_rpc_hession_rmi

    总结,"dubbo_rpc_hession_rmi"这个主题涵盖了Dubbo作为RPC框架的核心概念,Hessian作为RPC协议的实现,以及RPC基础理论。通过学习这些内容,开发者可以更好地理解和应用分布式服务框架,提高系统的可扩展性和可维护...

    从零开始手写 dubbo rpc 框架-12-generic泛化调用.docx

    Dubbo 的泛化调用机制是一个非常重要的 RPC 调用机制,提供了一个通用的 RPC 调用方式,能够满足各种框架集成和服务测试的需求。通过 GenericService 接口和 GenericReferenceProxy 代理类,我们可以轻松实现泛化...

    DUBBO接口测试工具

    DUBBO接口测试工具,不需要再搭建网关测试dubbo服务,简单方便。

    dubbo 简单测试DEMO

    【Dubbo简单测试DEMO详解】 Dubbo,作为阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,它提供了一套完整的服务调用、监控、注册与发现的解决方案。本DEMO旨在帮助初学者快速理解并掌握Dubbo的核心概念和...

    smart-doc是一款同时支持JAVA REST API和Apache Dubbo RPC接口文档生成的工具

    smart-doc是一款同时支持JAVA REST API和Apache Dubbo RPC接口文档生成的工具,smart-doc在业内率先提出基于JAVA泛型定义推导的理念, 完全基于接口源码来分析生成接口文档,不采用任何注解侵入到业务代码中

    dubbo rest rpc相关jar包

    在标题和描述中提到的“dubbo rest rpc相关jar包”是指Dubbo支持RESTful API调用的扩展模块,这使得Dubbo能够与更广泛的Web服务和微服务生态系统集成。 首先,我们来详细了解一下`dubbo-2.8.4.jar`。这是Dubbo的...

    dubbo单元测试maven项目

    Dubbo是一个高性能、轻量级的开源Java RPC框架,它提供了服务治理功能,包括服务注册、服务发现、负载均衡等。在这样的项目中,单元测试是确保代码质量、降低维护成本的关键环节。 【描述】描述了如何在Dubbo服务...

    dubbo本地测试服务

    在IT行业中,Dubbo是一个广泛使用的高性能Java RPC框架,它使得服务间的调用变得简单而高效。本主题聚焦于“dubbo本地测试服务”,旨在帮助开发者在本地环境中进行服务提供者连接、数据发送测试以及接口调试,从而...

Global site tag (gtag.js) - Google Analytics