dubbo和cloud的区别:duobbo是rpc通信方式,轻量级的通信机制spring cloud是restful http 通信。

           微服务的优缺点:

           优点,1)每个服务足够内聚,足够小。代码容易理解,业务容易修改。2)开发简单,效率高,团队小化。4)服务是松耦合的,开发和部署独立。不同语言开发。5)开发中,前后端分离,只关心后段服务,按照rest和格式提供服务。

           缺点:1)服务通信成本上升 2)难以运维部署监控 3)分布式事务和数据一致性 4)系统集成测试复杂

 技术栈支持情况,以及微服务技术栈:

 

 

服务注册中心

Zookeeper,Eureka,Consul ...

服务调用方式

RPC,REST,gRPC

服务网关

Zuul

断路器

Hystrix,Envoy...

负载均衡

Nginx,Ribbon...

服务调用

Feign

分布式配置

Config,Chef...

服务监控

Zabbix,Nagios,Metrics,Spectator...

服务跟踪

Sleuth

消息总线

Bus

数据流

Stream

批量任务

Task

dubbo和cloud:

 

Dubbo

Spring Cloud

 

Dubbo

Spring Cloud

服务注册中心

Zookeeper

Spring Cloud Netflix Eureka

服务调用方式

RPC

REST API

服务网关


Spring Cloud Netflix Zuul

断路器

不完善

Spring Cloud Netflix Hystrix

分布式配置


Spring Cloud Config

服务跟踪


Spring Cloud Sleuth

消息总线


Spring Cloud Bus

数据流


Spring Cloud Stream

批量任务


Spring Cloud Task

关于 Dubbo 和 Spring Cloud 间的关系,我们在开源中国年终盛典的 Dubbo 分享中也作了简单阐述。

首先要明确的一点是 Dubbo 和 Spring Cloud 并不是完全的竞争关系,两者所解决的问题域并不一样:Dubbo 的定位始终是一款 RPC 框架,而 Spring Cloud 的目标是微服务架构下的一站式解决方案

如果非要比较的话,我觉得 Dubbo 可以类比到 Netflix OSS 技术栈,而 Spring Cloud 集成了 Netflix OSS 作为分布式服务治理解决方案,但除此之外 Spring Cloud 还提供了包括 config、stream、security、sleuth 等等分布式问题解决方案。

当前由于 RPC 协议、注册中心元数据不匹配等问题,在面临微服务基础框架选型时 Dubbo 与 Spring Cloud 是只能二选一,这也是为什么大家总是拿 Dubbo 和 Spring Cloud 做对比的原因之一。

Dubbo 之后会积极寻求适配到 Spring Cloud 生态,比如作为 Spring Cloud 的二进制通信方案来发挥 Dubbo 的性能优势,或者 Dubbo 通过模块化以及对 http 的支持适配到 Spring Cloud。