Dubbo和Spring Cloud区别

Dubbo 的功能只是 Spring Cloud 体系的一部分。Dubbo 是 SOA 时代的产物,它的关注点主要在于服务调用,流量分发、流量监控和熔断。而 Spring Cloud 诞生于微服务架构时代,考虑的是微服务治理的方方面面,另外由于依托Spring、Spring Boot 的优势之上,两个框架在开始目标就不一致,Dubbo 定位服务治理、Spring Cloud 是一个生态。
仅关注于服务治理的这个层面,Dubbo 优于 Spring Cloud:

  • Dubbo 支持更多的协议,如:rmi、hessian、http、webservice、thrift、memcached、redis 等。
  • Dubbo 使用 RPC 协议效率更高,Dubbo由于是二进制的传输,占用带宽会更少
    Spring Cloud 是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大,在极端压力测试下,Dubbo 的效率会高于 Spring Cloud 效率一倍多,但RESTful比RPC更加灵活,不存在代码级别的强依赖
  • Dubbo 有更强大的后台管理,Dubbo 提供的后台管理 Dubbo Admin 功能强大,提供路由规则、动态配置、访问控制、权重调节、均衡负载等诸多强大的功能。
  • 可以限制某个 IP 流量的访问权限,设置不同服务器分发不同的流量权重,并且支持多种算法,利用这些功能可以在线上做服务治理、灰度发布、故障转移、流量分发等,Spring Cloud 到现在还不支持灰度发布、流量权重等功能。
  • 最大的区别就是通信方式不同,Dubbo底层是使用Netty这样的NIO框架,是基于TCP协议传输,配合hession序列化进行RPC调用
image.png

你可能感兴趣的:(Dubbo和Spring Cloud区别)