spring cloud和dubbo在底层实现上有什么区别

小编 423

spring cloud和dubbo在底层实现上有以下区别:1.性能上的区别;2.模块组成的区别;3.初始定位不同;5.生态环境不同;6.调用方式不同。性能上的区别在于,SpringCloud是基于Http协议,带宽会比较多,而Dubbo是基于TCP协议传输,性能要更好一些。

1.性能上的区别

SpringCloud是基于Http协议+rest接口调用远程过程的,相对来说Http请求会有更大的报文,占的带宽也会更多。

而Dubbo底层是使用Netty这样的NIO框架,是基于TCP协议传输的,配合以Hession序列化完成RPC。相比之下,RPC的性能比HTTP的性能更好,并发能力更强,经过深度优化的RPC服务框架,性能和并发能力是更好一些。

2.模块组成的区别

SpringCloud则是一个完整的分布式一站式框架,他有着一样的服务注册中心,服务提供者,服务消费者,管控台,断路器,分布式配置服务,消息总线,以及服务追踪等;而Dubbo主要分为服务注册中心,服务提供者,服务消费者,还有管控中心。

3.初始定位不同

SpringCloud定位为微服务架构下的一站式解决方案。主打的是微服务架构里,组件齐全和功能齐全。网关直接提供了分布式配置中心、授权认证、服务调用链路追踪,Hystrix可以做服务的资源隔离、熔断降级、服务请求QPS监控、契约测试、消息中间件封装、ZK封装。

Dubbo之前的一个定位,就是一个单纯的服务框架而已,不提供任何其他的功能,配合的网关还得选择其他的一些技术。它其实就是SOA时代的产物,关注点主要在于服务的调用和治理。

5.生态环境不同

SpringCloud依托于Spring平台,具备更加完善的生态体系;而Dubbo一开始只是做RPC远程调用,生态相对匮乏,现在逐渐丰富起来。

6.调用方式不同

SpringCloud是采用Http协议做远程调用,接口一般是Rest风格,比较灵活;Dubbo是采用Dubbo协议,接口一般是Java的Service接口,格式固定。但调用时采用Netty的NIO方式,性能较好。

此外,spring cloud和dubbo的组件差异也比较多,例如SpringCloud注册中心一般用Eureka,而Dubbo用的是Zookeeper。

延伸阅读

spring cloud和spring boot是什么关系

spring cloud是一个基于spring boot实现的云应用开发工具;spring boot专注于快速、方便集成的单个个体,spring cloud是关注全局的服务治理框架。spring boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,spring cloud很大的一部分是基于spring boot来实现。

1.spring cloud简介

spring cloud是一套目前完整的微服务框架,它是是一系列框架的有序集合。它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用SpringBoot的开发风格做到一键启动和部署。

2.spring boot简介

spring boot是一个快速开发框架,通过用MAVEN依赖的继承方式,帮助我们快速整合第三方常用框架,完全采用注解化(使用注解方式启动SpringMVC),简化XML配置,内置HTTP服务器(Tomcat,Jetty),最终以Java应用程序进行执行。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部