区别:

-----

来源(背景):

Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点。

Spring Cloud,从命名我们就可以知道,它是Spring Source的产物,Spring社区的强大背书可以说是Java企业界最有影响力的组织了,除了Spring Source之外,还有Pivotal和Netfix是其强大的后盾与技术输出。其中Netflix开源的整套微服务架构套件是Spring Cloud的核心。

传输:

Dubbo由于是二进制的传输,占用带宽会更少;

Spring Cloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大。但是在国内95%的公司内,网络消耗不是什么太大问题,如果真的成了问题,通过压缩、二进制、高速缓存、分段降级等方法,很容易解。

开发难度:

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

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

后续改进:

Dubbo通过dubbofilter,很多东西没有,需要自己继承,如监控,如日志,如限流,如追踪

Spring Cloud自己带了很多监控、限流措施,但是功能可能和欧美习惯相同,国内需要进行适当改造,但更简单,就是ServletFilter而已,但是总归比dubbo多一些东西是好的;

注册中心:

Dubbo的注册中心可以选择zk,redis等多种;

Spring Cloud:的注册中心只能用eureka或者自研;

配置中心:

dubbo:如果我们使用配置中心、分布式跟踪这些内容都需要自己去集成,无形中增加了使用难度。

Spring Cloud:提供了微服务的一整套解决方案:服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等

核心部件的比较:

Dubbo:

Provider:暴露服务的提供方,可以通过 jar 或者容器的方式启动服务。

Consumer:调用远程服务的服务消费方。

Registry:服务注册中心和发现中心。

Monitor:统计服务和调用次数,调用时间监控中心。(Dubbo 的控制台页面中可以显示,目前只有一个简单版本。)

Container:服务运行的容器。

Spring Cloud:

Service Provider: 暴露服务的提供方。

Service Consumer:调用远程服务的服务消费方。

EureKa Server: 服务注册中心和服务发现中心。

架构的完整度:

Dubbo只是实现了服务治理;

Spring Cloud下面有17个子项目(可能还会新增)分别覆盖了微服务架构下的方方面面,服务治理只是其中的一个方面;

一定程度来说,Dubbo只是Spring Cloud Netflix中的一个子集。

服务依赖方式:

Dubbo:服务提供方与消费方通过接口的方式依赖,服务调用设计如下:

Interface 层:服务接口层,定义了服务对外提供的所有接口。

Molel 层:服务的 DTO 对象层。

Business层:业务实现层,实现 Interface 接口并且和 DB 交互。

因此需要为每个微服务定义各自的 Interface 接口,并通过持续集成发布到私有仓库中。调用方应用对微服务提供的抽象接口存在强依赖关系,开发、测试、集成环境都需要严格的管理版本依赖。

通过 maven 的 install & deploy 命令把 Interface 和 Model 层发布到仓库中,服务调用方只需要依赖 Interface 和 Model 层即可。在开发调试阶段只发布 Snapshot 版本,等到服务调试完成再发布;Release 版本,通过版本号来区分每次迭代的版本。通过 xml 配置方式即可接入 Dubbo,对程序无入侵。

总之:服务提供方与消费方通过接口的方式依赖,Dubbo 服务依赖略重,需要有完善的版本管理机制,但是程序入侵少。

Spring Cloud:

服务提供方和服务消费方通过 Json 方式交互,因此只需要定义好相关 Json 字段即可,消费方和提供方无接口依赖。通过注解方式来实现服务配置,对于程序有一定入侵。

通过 Json 交互,省略了版本管理的问题,但是具体字段含义需要统一管理,自身 Rest API 方式交互,为跨平台调用奠定了基础。

总体:

Dubbo:使用Dubbo构建的微服务架构就像组装电脑,各环节我们的选择自由度很高,但是最终结果很有可能因为一条内存质量不行就点不亮了,总是让人不怎么放心,但是如果你是一名高手,那这些都不是问题;

Spring Cloud就像品牌机,在Spring Source的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外的东西,就需要对其基础有足够的了解。

-------------------------------------

优缺点(综上得到):

-------------------------------------

Dubbo

优点:

1.支持各种通信协议,而且消费方和服务方使用长链接方式交互,通信速度上略胜 ;

2.采用rpc方式,性能上比Spring Cloud的rpc更好;

3.dubbo的网络消耗小于springcloud

缺点:

1.如果我们使用配置中心、分布式跟踪这些内容都需要自己去集成;

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

3.

Spring Cloud:

优点:

1、产出于Spring大家族,Spring在企业级开发框架中来头很大,可以保证后续的更新、完善。

2、spring cloud社区活跃,教程丰富,遇到问题很容易找到解决方案;

3、spring cloud功能比dubbo更加完善;

5、spring cloud采用rest访问方式,rest的技术无关性使用效果更棒;

6、spring cloud轻轻松松几行代码就完成了熔断、均衡负责、服务中心的各种平台功能;

7、从公司招聘工程师方面,spring cloud更有优势,因为其技术更新更炫;

8、提供了微服务的一整套解决方案:服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等;作为一个微服务治理的大家伙,考虑的很全面,几乎服务治理的方方面面都考虑到了,方便开发开箱即用;

缺点:

1.如果对于系统的响应时间有严格要求,长链接更合适。

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

参考:https://blog.csdn.net/ChauncyNong/article/details/80961630

Dubbo与Spring Cloud的比较的更多相关文章

  1. Dubbo和Spring Cloud微服务架构'

    微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.虽然微服务架构没有公认的技术标准和规范或者草案,但业 ...

  2. Dubbo和Spring Cloud

    1.Dubbo和Spring Cloud区别 1).通信方式不同 Dubbo使用RPC通信,Spring Cloud使用Http RestFul方式 2) 组成部分不同 组件 Dubbo Spring ...

  3. Dubbo和Spring Cloud微服务架构比较

    Dubbo 出生于阿里系,是阿里巴巴服务化治理的核心框架,并被广泛应用于中国各互联网公司:只需要通过 Spring 配置的方式即可完成服务化,对于应用无入侵,设计的目的还是服务于自身的业务为主. 微服 ...

  4. 你真的了解微服务架构吗?听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构

    微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.虽然微服务架构没有公认的技术标准和规范或者草案,但业 ...

  5. 听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构

    转自:https://baijiahao.baidu.com/s?id=1600174787011483381&wfr=spider&for=pc 微服务架构是互联网很热门的话题,是互 ...

  6. Dubbo 和 Spring Cloud微服务架构 比较及相关差异

    你真的了解微服务架构吗?听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构. 微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务, ...

  7. Dubbo和Spring Cloud开发框架对比

    前言 微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.虽然微服务架构没有公认的技术标准和规范或者草案 ...

  8. dubbo 与Spring Cloud 对比

    链接:https://www.zhihu.com/question/45413135/answer/242224410 近期也看到一些分享Spring Cloud的相关实施经验,这对于最近正在整理Sp ...

  9. 【图解】我使用过的 Dubbo 和 Spring Cloud

    自从2015年毕业开始从事 Java 开发工作,已经过去3年多了, 在各种不知名的小公司待过,经历过生产力从低到高,技术从落后到先进的过程, Dubbo 和 Spring Cloud 就是我曾经所经历 ...

  10. 终极对决!Dubbo 和 Spring Cloud 微服务架构到底孰优孰劣

    标签: 微服务dubbospring架构 前言 微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.虽然 ...

随机推荐

  1. Burpsuite专题学习指南

    点击蓝色字体即可 开启你的Burp学习之旅BurpSuite系列(一)----Proxy模块(代理模块) BurpSuite系列(二)----Target模块(目标模块) BurpSuite系列(三) ...

  2. APM监控工具Pinpoint搭建

    一:Pinpoint简介与架构图示 Pinpoint是什么Pinpoint是开源在github上的一款使用JAVA语言编写的APM监控工具,用于大规模分布式系统监控.它对性能的影响较小,只增加约3%的 ...

  3. 支持IE6、IE7、IE8等低端浏览器的简化版vue

    最近研究Vue的底层原理,写了一个简化版的Vue,可以在支持IE6.IE7.IE8等低端浏览器运行.由于低端浏览器不支持对象属性定义,所以设置属性不支持直接赋值,需要调用虚拟机实例的set方法.目前只 ...

  4. PostCSS的插件 -- 关于vue rem适配布局方案

    PostCSS的插件 作用:用于自动将像素单元生成rem单位 记以下三种 postcss-plugin-px2rem postcss-pxtorem postcss-px2rem 任选一种,最近大家推 ...

  5. vue环境搭建过程中,npm权限不足问题

    今天在用git bash进行全局安装vue-cli的时候,报错: 必须以管理员权限进行安装才行.所以用cmd命令工具,点击右键命令提示符cmd--------以管理员身份运行--------cd进入到 ...

  6. 使用java程序jxl操作Excel表格

    在实际开发中企业办公系统都会涉及到一个打印报表的功能,也许你的需求就是把web前端展示的员工信息以Excel表格形式打印出来 ,那么具体怎么操作下面我来实现一下 首先我们使用的是 java的jxl技术 ...

  7. ASP.NETMVC中js非空验证实例

    页面代码 @using (Html.BeginForm("Edit", "Home", FormMethod.Post, new { @Id = "f ...

  8. div隐藏滚动条,仍可滚动

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  9. MySQL windows中的存储备份

    数据备份对于经常在运维部署方面的工作者来说,是一件相对简单的事情,都可以通过某一个SQL工具进行备份,但是如果在项目运行当中,我们需要对数据进行实时,或者是每隔一星期,一个月,等等进行数据的备份,这样 ...

  10. Mass Spectrometry-Compatible Subcellular Fractionation for Proteomics 质谱兼容的蛋白质组学的亚细胞分离(解读人:王茹凯)

    文献名:Mass Spectrometry-Compatible Subcellular Fractionation for Proteomics(质谱兼容的蛋白质组学的亚细胞分离) 期刊名:Jpor ...