孰优孰劣?Dubbo VS Spring Cloud性能测试大对决!

孰优孰劣?Dubbo VS Spring Cloud性能测试大对决!

2017-01-24 From ImportSource ImportSource
ImportSource

importsource

专注纯英文Java、Hadoop、Spark、NoSQL等大数据原著翻译并分享。ImportSource是由java关键字import和source(源)组成。意指学习原汁原味的编程技术,让你英语编程两不误。

       最近我们试图从Dubbo迁移到Spring Cloud。为此对二者分别进行了性能测试。为了得出数据量不同的情况下的二者的性能表现,我们分别准备了一个25个属性pojo对象和一个50个属性的pojo对象,通过这样的方式我们也可以间接地了解二者在序列化方面的水平。


      以下是测试结果:


25个属性,10W次:

     






50个属性,10W次:






分析:

        由于Spring Cloud与Dubbo天生使用的协议层面不一样,前者是HTTP,后者是TCP(使用的是Netty NIO框架,序列化使用的阿里定制版Hessian2),导致两个框架的性能差距略大。基本上是三比一的差距!Dubbo官方TPS是1W左右,这和我们的测试最高值是接近的。在之前我们还进行过一次测试,那次测试是真实的项目测试,包含了对数据库的访问,最后二者的结果相差并不是很大。由此也得出,框架的性能可能对一个真实的请求(Request)影响并不是很大,或者说并不起决定性作用,也许真正影响性能的是你的业务代码,比如数据库访问以及IO,当然了,框架的性能在一些对性能要求敏感的应用来说也是要考虑的。


       另外根据Dubbo官方说法,Dubbo在小数据量的情况下表现卓越,这和我们的测试也是吻合的,在50个属性的pojo对象下,Dubbo性能确实下降了。


      另外Spring Cloud默认的feigh client是使用jdk的urlconnection来做HTTP的请求,考虑这种做法的性能问题,我们尝试接入了httpclient包来测试,结果发现httpclient更慢,最后我们引入了开源的okhttp包,综合发现,okhttp和Spring Cloud的feign client结合是性能最高的。


      还有就是我们之前也测试过用RestTemplate进行测试,性能要比用Feigh还要好一些。大概能提升百分之十到十五。


      虽然Spring Cloud在性能上与Dubbo有天生的劣势,但考虑到Spring Cloud作为一套专门的微服务框架,再加上RESTful风格的API的趋势,从综合的角度,Spring Cloud无疑是你所在的公司未来微服务化进程中不可缺少的选择之一!


以上测试仅供参考!



测试环境:

1、微服务服务器:

CPU(s): 12

Free Mem:6G

2、注册中心服务器:

开发环境机器。

3、客户机器:

CPU(s): 2

Free Mem:2G


测试工具:

OneTest


版本信息:

Dubbo:2.8.4

Spring Cloud:1.4.3.RELEASE


和平!和平!和平!

赞赏

人赞赏

阅读
投诉
精选留言

该文章作者已设置需关注才可以留言

写留言

    该文章作者已设置需关注才可以留言

    写留言

    加载中
    以上留言由公众号筛选后显示

    了解留言功能详情

    微信扫一扫
    关注该公众号

    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值