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客户端测试结果如下所示:
从数据可以看出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文档。
由于论坛限制,完整文档下载http://pan.baidu.com/s/1eQIY9xg,文档比较大因为包含了源码和运行程序
http://5337kun.blog.163.com/blog/static/18853964201612245624186/
相关推荐
【标题】基于Netty实现Dubbo RPC 在分布式系统中,RPC(Remote Procedure Call)是一种常见且重要的通信机制,它允许一个程序调用另一个在不同进程中运行的程序,就像调用本地函数一样简单。Dubbo作为阿里巴巴开源...
mmc-dubbo-provider dubbo提供者项目,主要用于测试。 mmc-dubbo-doe 主项目,实现dubbo接口调试。 deploy 部署文档 功能特性 极简模式:通过dubbo提供的telnet协议收发数据。 普通模式:通过封装netty客户端收发...
Dubbo RPC 框架 Generic 调用机制详解 Dubbo RPC 框架是一种基于 Netty 实现的 Java RPC 框架,主要用于个人学习和理解 RPC 底层实现原理。本文将详细介绍 Dubbo RPC 框架中的 Generic 调用机制。 Generic 调用...
Dubbo是一款由阿里巴巴开源的高性能Java RPC框架,它在分布式系统中起到了服务调用的核心作用。RPC(Remote Procedure Call)允许一个程序调用另一个在不同网络计算机上的程序,就像调用本地函数一样简单。Dubbo的...
druid数-spring-dubbo-service.zip" 这个标题表明我们正在处理一个基于Spring和Dubbo框架的微服务项目,其中涉及到Dubbo的远程过程调用(RPC)机制。此外,提到了“druid数”,这通常指的是Druid数据源,它是一个...
《Dubbo RPC框架详解与实践》 Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了丰富的服务治理功能,如服务注册、服务发现、负载均衡、容错机制等,是阿里巴巴贡献给社区的重要开源项目。本资料包旨在帮助...
dubbo.rpc.demo.rar;dubbo双模块RPC调用,附源码及编译后内容,解压即可用;dubbo.rpc.demo.rar;dubbo双模块RPC调用,附源码及编译后内容,解压即可用;dubbo.rpc.demo.rar;dubbo双模块RPC调用,附源码及编译后...
本文主要分析了四种常见的RPC框架——ice、dubbo、thrift和grpc的性能表现,通过一组简化的并发测试,对比了它们在不同并发情况下的处理能力。 首先,测试的目的是为了技术选型,虽然测试可能不够严谨,但仍然可以...
dubbo 分布式rpc调用示例代码,需在本地安装好zookeeper,然后启动,启动provider,main 方法在test\java\Provider.java里面,在启动consumer,OrderService类,即可看到调用的输出
标题中的“nodejs使用原生的dubbo协议打通了dubbo的rpc方法调用”意味着在Node.js环境中,开发者成功地实现了对Dubbo服务的RPC(远程过程调用)访问,利用了Dubbo协议的特性。Dubbo是阿里巴巴开源的一个高性能、轻量...
总结,"dubbo_rpc_hession_rmi"这个主题涵盖了Dubbo作为RPC框架的核心概念,Hessian作为RPC协议的实现,以及RPC基础理论。通过学习这些内容,开发者可以更好地理解和应用分布式服务框架,提高系统的可扩展性和可维护...
Dubbo 的泛化调用机制是一个非常重要的 RPC 调用机制,提供了一个通用的 RPC 调用方式,能够满足各种框架集成和服务测试的需求。通过 GenericService 接口和 GenericReferenceProxy 代理类,我们可以轻松实现泛化...
DUBBO接口测试工具,不需要再搭建网关测试dubbo服务,简单方便。
【Dubbo简单测试DEMO详解】 Dubbo,作为阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,它提供了一套完整的服务调用、监控、注册与发现的解决方案。本DEMO旨在帮助初学者快速理解并掌握Dubbo的核心概念和...
smart-doc是一款同时支持JAVA REST API和Apache Dubbo RPC接口文档生成的工具,smart-doc在业内率先提出基于JAVA泛型定义推导的理念, 完全基于接口源码来分析生成接口文档,不采用任何注解侵入到业务代码中
在标题和描述中提到的“dubbo rest rpc相关jar包”是指Dubbo支持RESTful API调用的扩展模块,这使得Dubbo能够与更广泛的Web服务和微服务生态系统集成。 首先,我们来详细了解一下`dubbo-2.8.4.jar`。这是Dubbo的...
Dubbo是一个高性能、轻量级的开源Java RPC框架,它提供了服务治理功能,包括服务注册、服务发现、负载均衡等。在这样的项目中,单元测试是确保代码质量、降低维护成本的关键环节。 【描述】描述了如何在Dubbo服务...
在IT行业中,Dubbo是一个广泛使用的高性能Java RPC框架,它使得服务间的调用变得简单而高效。本主题聚焦于“dubbo本地测试服务”,旨在帮助开发者在本地环境中进行服务提供者连接、数据发送测试以及接口调试,从而...