相同点

Dubbo 与 springCloud 都可以实现 rpc 远程调用,都可以使用在分布式,微服务场景下。

两者区别

dubbo使用zk或redis作为作为注册中心;springcloud使用eureka作为注册中心;

Dubbo 优势

dubbo 支持多种协议,如 rmi, hessian, http, webservice, thrift, memcached, redis 等,默认使用 dubbo 协议;Springcloud 只能支持 http 协议;dubbo 使用 Rpc 协议效率更高,在极端压力测试下,Dubbo 的效率会高于 Spring Cloud 效率一倍多;

springCloud 优势

Springcloud是一套完整的微服务解决方案;dubbo 只实现了服务治理,可以看做是 springcloud 微服务体系的一部分功能。Dubbo专注于服务治理;springcloud 专注于微服务架构生态。

springCloud 是一系列框架的有序集合,它利用 SpringBoot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。

Spring 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 Spring Boot 风格进行再封装、屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

以下为 Spring Cloud 的核心功能:

  • 分布式/版本化配置。
  • 服务注册和发现。
  • 路由。
  • 服务和服务之间的调用。
  • 负载均衡。
  • 断路器。
  • 分布式消息传递。

springCloud 架构

image.png

请求链路:

1、外部或者内部的非SpringCloud项目都统一通过API网关(Zuul)来访问内部服务.
2、网关接收到请求后,从注册中心(Eureka)获取可用服务
3、由Ribbon进行均衡负载后,分发到后端的具体实例
4、微服务之间通过Feign进行通信处理业务
5、Hystrix负责处理服务超时熔断
6、Turbine监控服务间的调用和熔断相关指标

微服务与springCloud.pdf