微服务框架Dubbo与SpringCloud的区别

微服务框架Dubbo与SpringCloud的区别

 

微服务主要的优点以下:

 

一、下降复杂度

 

将原来偶合在一块儿的复杂业务拆分为单个服务,规避了本来复杂度无止境的积累。每个微服务专一于单一功能,并经过定义良好的接口清晰表述服务边界。redis

每一个服务开发者只专一服务自己,经过使用缓存、DAL等各类技术手段来提高系统的性能,而对于消费方来讲彻底透明。缓存

 

二、可独立部署

 

因为微服务具有独立的运行进程,因此每一个微服务能够独立部署。当业务迭代时只须要发布相关服务的迭代便可,下降了测试的工做量同时也下降了服务发布的风险。网络

 

三、容错

 

在微服务架构下,当某一组件发生故障时,故障会被隔离在单个服务中。 经过限流、熔断等方式下降错误致使的危害,保障核心业务正常运行。架构

 

四、扩展

 

单块架构应用也能够实现横向扩展,就是将整个应用完整的复制到不一样的节点。当应用的不一样组件在扩展需求上存在差别时,微服务架构便体现出其灵活性,由于每一个服务能够根据实际需求独立进行扩展。负载均衡

 

 

Dubbo

 

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

 

Dubbo 核心部件(以下图):分布式

 

Provider: 暴露服务的提供方,能够经过jar或者容器的方式启动服务ide

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

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

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

Container:服务运行的容器。

 

 SpringCloud

Spring Cloud是一系列框架的有序集合,是构建分布式系统的工具集。开发者全家桶,把业界主流最好技术整合起来集中利用这些方便工具构建业务系统。

 

Spring Cloud整体架构以下图

 

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

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

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

 

Dubbo与SpringCloud二者的区别

最大的区别:Spring Cloud抛弃了Dubbo 的RPC通讯,采用的是基于HTTP的REST方式。

 

性能比较

使用一个Pojo对象包含10个属性,请求10万次,Dubbo和Spring Cloud在不一样的线程数量下,每次请求耗时(ms)以下:

 

 

来源(背景):

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

相关文章
相关标签/搜索