zoukankan      html  css  js  c++  java
  • 孰优孰劣?Dubbo VS Spring Cloud性能测试大对决!

     最近我们试图从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

    http://mp.weixin.qq.com/s?__biz=MzA5MzQ2NTY0OA==&mid=2650796496&idx=1&sn=a544b76660484b9914b65f038cc39e6d&chksm=88562c8fbf21a5995909ffa9f172f31651b1ebd04897917e43caef3491954e24ed0d0477a5a1&mpshare=1&scene=23&srcid=01245faqrBlQETYK9c7zVmd3#rd

  • 相关阅读:
    springcloud配置中心
    burnside+polya 整理
    线段树-小总结
    D. Artsem and Saunders
    444 D. Ratings and Reality Shows
    P1337 [JSOI2004]平衡点 / 吊打XXX
    Typora + Open Live Writer 管理博客园
    旋转卡壳
    B. Alyona and a tree
    set的用法
  • 原文地址:https://www.cnblogs.com/chen110xi/p/6349580.html
Copyright © 2011-2022 走看看