dubbo 和 dubbox 的区别

Dubbo 源于阿里的淘宝网 开源的分布式的服务架构,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 SOA 服务化治理方案的核心框架。淘宝网将其开源之后,得到了很多的拓展和支持(比较出名的有:当当网的扩展版本 dubbox,京东的扩展版本 jd-hydra 等)
Dubbox(即 Dubbo eXtensions)是当当网 Fork 基于 dubbo2.x 的升级版本, 兼容原有的 dubbox。其中升级了 zookeeper 和 spring 版本,并且支持 restfull 风格的远程调用。。

dubbo 和 spring cloud 区别

Dubbo 架构图

image.png

SpringCloud 架构图

image.png

总览

区别 - 图3

面向微服务的技术 (SpringCloud)

Spring Cloud 抛弃了 Dubbo 的 RPC 通信,采用的是基于 HTTP 的 REST 方式。严格来说,这两种方式各有优劣。虽然从一定程度上来说,后者牺牲了服务调用的性能,但也避免了上面提到的原生 RPC 带来的问题。而且 REST 相比 RPC 更为灵活,服务提供方和调用方,不存在代码级别的强依赖,这在强调快速演化的微服务环境下显得更加合适。

最大的区别:

  • Dubbo 底层是使用 Netty 这样的 NIO 框架,是基于 TCP 协议传输的,配合以 Hession 序列化完成 RPC 通信;
  • 而 SpringCloud 是基于 Http 协议 + rest 接口调用远程过程的通信,相对来说,Http 请求会有更大的报文,占的带宽也会更多。但是 REST 相比 RPC 更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更为合适,至于注重通信速度还是方便灵活性,具体情况具体考虑。

    定位区别:

    Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用,流量分发、流量监控和熔断;而 Spring Cloud 诞生于微服务架构时代,考虑的是微服务治理的方方面面,另外由于依托 Spirng、Spirng Boot 的优势之上,两个框架在开始目标就不一致,Dubbo 定位服务治理、Spirng Cloud 是一个生态。因此可以大胆地判断,Dubbo 未来会在服务治理方面更为出色,而 SpringCloud 在微服务治理上面无人能敌。

    模块区别:

    1、Dubbo 主要分为服务注册中心,服务提供者,服务消费者,还有管控中心;
    2、相比起 Dubbo 简单的四个模块,SpringCloud 则是一个完整的分布式一站式框架,他有着一样的服务注册中心,服务提供者,服务消费者,管控台,断路器,分布式配置服务,消息总线,以及服务追踪等;

    常见的注册中心

    区别 - 图4

dubbo 2.6 和 3.0 区别