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