1. 概述
可能说起来Dubbo,很多人都不陌生,这毕竟是一款从2012年就开始开源的Java RPC框架,中间由于各种各样的原因停止更新4年半的时间,中间只发过一个小版本修了一个小bug,甚至大家都以为这个项目已经死掉了,竟然又在2017年9月份恢复了更新,不可谓不神奇。
网络上很多人都拿Dubbo和Spring Cloud做对比,可能在大家的心目中,这两个框架是可以画上等号的吧,后来在网络上有一个非常流行的表格,比较详细的对比了 Spring Cloud 和 Dubbo ,表格如下:
以上列举了一些核心部件,当然这里需要申明一点,Dubbo对于上表中总结为“无”的组件不代表不能实现,而只是Dubbo框架自身不提供,需要另外整合以实现对应的功能,这样看起来确实Dubbo更像是Spring Cloud的一个子集。
Dubbo 在国内拥有着巨大的用户群,大家希望在使用 Dubbo 的同时享受 Spring Cloud 的生态,出现各种各样的整合方案,但是因为服务中心的不同,各种整合方案并不是那么自然,直到 Spring Cloud Alibaba 这个项目出现,由官方提供了 Nacos 服务注册中心后,才将这个问题完美的解决。并且提供了 Dubbo 和 Spring Cloud 整合的方案,命名为: Dubbo Spring Cloud 。
1.2 Dubbo Spring Cloud 概述
Dubbo Spring Cloud 构建在原生的 Spring Cloud 之上,其服务治理方面的能力可认为是 Spring Cloud Plus, 不仅完全覆盖 Spring Cloud 原生特性,而且提供更为稳定和成熟的实现,特性比对如下表所示:
功能组件 |
Spring Cloud |
Dubbo Spring Cloud |
分布式配置(Distributed configuration) |
Git、Zookeeper、Consul、JDBC |
Spring Cloud 分布式配置 + Dubbo 配置中心 |
服务注册与发现(Service registration and discovery) |
Eureka、Zookeeper、Consul |
Spring Cloud 原生注册中心 + Dubbo 原生注册中心 |
负载均衡(Load balancing) |
Ribbon(随机、轮询等算法) |
Dubbo 内建实现(随机、轮询等算法 + 权重等特性) |
服务熔断(Circuit Breakers) |
Spring Cloud Hystrix |
Spring Cloud Hystrix + Alibaba Sentinel 等 |
服务调用(Service-to-service calls) |
Open Feign、RestTemplate |
Spring Cloud 服务调用 + Dubbo @Reference |
链路跟踪(Tracing) |
Spring Cloud Sleuth + Zipkin |
Zipkin、opentracing 等 |
以上对比表格摘自Dubbo Spring Cloud官方文档。