孰优孰劣?Dubbo VS Spring Cloud性能测试大对决!
2017-12-19 18:02
691 查看
孰优孰劣?Dubbo VS Spring Cloud性能测试大对决!
原创 2017-01-24 From ImportSource ImportSourceImportSource
微信号 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无疑是你所在的公司未来微服务化进程中不可缺少的选择之一!
相关文章推荐
- 孰优孰劣?Dubbo VS Spring Cloud性能测试大对决!
- 孰优孰劣?Dubbo VS Spring Cloud性能测试大对决!
- 孰优孰劣?Dubbo VS Spring Cloud性能测试大对决!
- dubbo VS springcloud的性能测试大对决
- Dubbo 和 Spring Cloud 微服务架构到底孰优孰劣?
- 终极对决!Dubbo 和 Spring Cloud 微服务架构到底孰优孰劣?
- API网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd(转)
- 微服务的基础框架选择:SpringCloud还是Dubbo?
- dubbo&hsf&spring-cloud简单介绍
- 消费者驱动的微服务契约测试套件:Spring Cloud Contract
- dubbo springCloud比较
- SpringCloud的注解:EnableEurekaClient vs EnableDiscoveryClient
- 微服务网关哪家强?一文看懂Zuul, Nginx, Spring Cloud, Linkerd性能差异
- 微服务架构的基础框架选择:Spring Cloud还是Dubbo?
- vs性能测试之旅(2) — 脚本增强之规则
- 微服务架构的基础框架选择:Spring Cloud还是Dubbo?
- EJB、Dubbo、Spring Cloud对比
- Struts2与Spring3 MVC性能比较 (MVC性能测试)
- springcloud和dubbo微服务架构图
- 多个IoC容器适配器设计及性能测试(Castle.Windsor Autofac Spring.Core)