SpringCloud与Dubbo的比较

目录

Dubbo

一、dubbo简介

二、dubbo组织架构图

三、dubbo的优势

SpringCloud

一、SpringCloud简介

二、SpringCloud组织架构

三、SpringCloud特点

四、Dubbo与SpringCloud的比较

4.1 dubbo与SpringCloud的核心要素比较

4.2 整体比较


Dubbo

一、dubbo简介

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

现已发展成为Apache的顶级孵化开源项目,详见官网:
Dubbo官网http://dubbo.apache.org/en-us/

二、dubbo组织架构图

官网的dubbo组织架构图

详细介绍

1、Registry:服务注册与发现中心,作为服务提供者和消费者注册与发现的中心。

2、Provider:服务提供者,在注册中心注册作为服务提供的一方,发布服务到服务注册中心。

3、Consumer:服务消费者,通过注册中心协调,订阅可用的已注册的服务。

4、Container:服务运行容器,独立的容器类似于tomcat/jboss的作用,作为服务运行的容器。

5、Monitor:dubbo的监控中心,用来显示接口暴露、注册情况,也可以看接口的调用明细,调用时间等。

三、dubbo的优势

  1. 单一应用架构,当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的 数据访问框架(ORM)是关键。
  2. 垂直应用架构,当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的 Web框架(MVC)是关键。
  3. 分布式服务架构,当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的 分布式服务框架(RPC)是关键。
  4. 流动计算架构当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的 资源调度和治理中心(SOA)是关键。

SpringCloud

一、SpringCloud简介

SpringCloud是一系列框架的有序集合。它基于SpringBoot的便利性融合了一整套实现微服务的框架并提供了服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等组件。

SpringCloud的官网:        Spring CloudLevel up your Java code and explore what Spring can do for you.https://spring.io/projects/spring-cloud

二、SpringCloud组织架构

简单SpringCloud组织架构图

spring cloud子项目包括:

  Spring Cloud Config:配置管理开发工具包,可以让你把配置放到远程服务器,目前支持本地存储、Git以及Subversion。

  Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。

  Spring Cloud Netflix:针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。

  Netflix Eureka:云端负载均衡,一个基于 REST 的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移。

  Netflix Hystrix:容错管理工具,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

  Netflix Zuul:边缘服务工具,是提供动态路由,监控,弹性,安全等的边缘服务。

  Netflix Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。

  Spring Cloud for Cloud Foundry:通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。

  Spring Cloud Sleuth:日志收集工具包,封装了Dapper,Zipkin和HTrace操作。

  Spring Cloud Data Flow:大数据操作工具,通过命令行方式操作数据流。

  Spring Cloud Security:安全工具包,为你的应用程序添加安全控制,主要是指OAuth2。

  Spring Cloud Consul:封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。

  Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务注册和发现。

  Spring Cloud Stream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。

  Spring Cloud CLI:基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。

更多SpringCloud详细见另一篇文章:

                                              深入理解SpringCloud与微服务构建

三、SpringCloud特点

1:约定优于配置

2:开箱即用、快速启动

3:适用于各种环境

4:轻量级的组件

5:组件支持丰富,功能齐全

四、Dubbo与SpringCloud的比较

4.1 dubbo与SpringCloud的核心要素比较

核心要素

4.2 整体比较

1、dubbo由于是二进制的传输,占用带宽会更少

2、springCloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大

3、dubbo的开发难度较大,原因是dubbo的jar包依赖问题很多大型工程无法解决

4、springcloud的接口协议约定比较自由且松散,需要有强有力的行政措施来限制接口无序升级

5、dubbo的注册中心可以选择zk,redis等,springcloud的注册中心用eureka或者Consul

我是程序大视界,坚持原创技术博客分享。

注:如果本篇博客有任何纰漏和建议,欢迎私信或评论留言!

  • 113
    点赞
  • 481
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 28
    评论
### 回答1: DubboSpring Cloud都是分布式系统的解决方案,但它们有以下区别: 1. Dubbo是阿里巴巴开源的RPC框架,主要用于服务之间的通信,而Spring CloudSpring家族的微服务框架,提供了一整套微服务解决方案。 2. Dubbo的定位是高性能和轻量级,适用于大规模的分布式系统,而Spring Cloud则更加注重开发效率和易用性,适用于中小型的分布式系统。 3. Dubbo提供了完整的服务治理方案,包括服务注册、发现、负载均衡、容错、路由等,而Spring Cloud则更加注重服务的配置管理、监控、链路追踪等方面。 4. Dubbo的开发语言是Java,而Spring Cloud则支持多种语言,如Java、Kotlin、Scala等。 总之,DubboSpring Cloud都是优秀的分布式系统解决方案,选择哪个框架取决于具体的业务需求和技术栈。 ### 回答2: Doubbo 和 Spring Cloud 都是使用于微服务架构的框架。二者都提供了一些通用的解决方案,但是在很多方面还是有很大的不同之处。下面从几个方面分别进行比较: 1. 设计理念 Dubbo 设计理念:面向接口编程,服务化治理思想中使用比较广泛的“三剑客”,分别是配置管理、服务发现、限流降级。 Spring Cloud 设计理念:引入 Spring 框架的先进编程思想,使用 Spring Boot 创建独立的微服务。 2. 协议的支持性 Dubbo 支持 RPC 通信协议,如 HTTP、Dubbo 协议等。 Spring Cloud 支持 RESTful 协议,同时提供多种通信支持,如 HTTP、WebSockets、TCP、UDP 等协议。 3. 组件化 Dubbo 的组件化相对 Spring Cloud 来说更轻量级,组件通常是用插件的形式进行扩展,比较划算。 Spring Cloud 的组件化则更高级。Spring Cloud 利用了 Spring Boot 的自动配置原理,更容易创建专业微服务。 4. 社区支持 Dubbo 的社区比较偏向中国的开发者,主要是阿里巴巴开发的团队开发和维护。 Spring Cloud 则是依托 Spring 社区发展起来的。Spring 社区使用非常广泛,开发和维护人员也比 Dubbo 要多得多。 总体来说, DubboSpring Cloud 更早一些上市,提供了更多的实施方案,业界评价也更高。相比之下, Spring Cloud 技术更先进,整体体系更成熟,更适合对微服务架构有较深入了解的开发人员。没有绝对的对错之分,适用的场景和要求不同,具体使用哪个框架还是要根据实际情况来择优方案。 ### 回答3: Doubbo和Spring Cloud都是用于构建分布式系统的框架,但它们有许多不同之处。 首先,Dubbo是由阿里巴巴开发的一种轻量级的RPC框架,旨在解决微服务的分布式RPC调用问题。Dubbo非常注重RPC的性能和效率,Dubbo使用高度优化的序列化协议和传输,以获得更快的服务和更低的延迟。Dubbo也具备良好的服务治理能力,提供注册中心、负载均衡、容错保护、服务发现和路由等功能。 但Doubbo的功能范围相对较小,提供的组件少,缺乏完整的微服务框架。 而Spring CloudSpring家族的微服务框架,构建于Spring Boot之上,提供了一组工具,以帮助开发人员在分布式系统中构建和连接服务。相较于DubboSpring Cloud的功能更加强大和完善,几乎涵盖了微服务架构的整个生命周期,包括服务注册发现、服务配置管理、路由和负载均衡、断路器、分布式跟踪、安全和监控等等。Spring Cloud也不像Dubbo那样严格要求RPC协议,可以使用多种协议,例如REST,Apache Thrift,以及gRPC等,从而更好地满足各种对分布式解决方案的需求。 另外,Dubbo更加侧重服务提供方面,而Spring Cloud更加侧重服务消费方面。Dubbo提供面向服务提供者的开发模式,而Spring Cloud则提供了更多的面向服务消费者的实现。 总的来说,Dubbo注重的是RPC调用的性能和效率,功能相对较少,但非常适合高性能、大规模的微服务架构;而Spring Cloud则是基于Spring的完整的微服务框架,具备全面的功能,适合各种规模的微服务架构。选择哪个微服务框架,需要根据场景需求做出合理的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序大视界

原创不易,请给点支持和鼓励吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值