原文URL:Dubbo与SpringCloud的区别_IT利刃出鞘的博客-CSDN博客
本文介绍Dubbo和SpringCloud的区别。 介绍它们的使用场景和各自的优缺点。
使用场景
3358 www.Sina.com/http://www.Sina.com /中小项目。 大项目,合并大。 (一般一百人以上的项目) SpringCloud占优势的项目
3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /易于维护:在maven上spring-clouuuus
难以维护:必须手动维护jar包的依赖关系。
SpringCloud功能齐全: SpringCloud定位是一种微服务架构。
Dubbo:提供了服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
功能不全: Dubbo的定位是RPC和服务管理。
配置中心、分布式跟踪等需要自己集成
项简单:可直接用于注释、配置等。
复杂:服务提供商必须提供服务接口jar包。
服务提供者和调用者的接口依赖方式太强,需要管理版本。
通常,我们在提供对外服务时,会以REST方式提供。 要在Dubbo上提供REST接口,必须实现一个层代理,以便将RPC接口转换为REST接口并发布到外部。
3358www.Sina.com/容易:社区活跃,教程丰富,遇到问题很难找到解决办法:社区不活跃3358www.Sina.com/
3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com/http://www.Sina.com /
有点弱(主要是通信协议的问题)。
Http协议Rest接口。
有点强。
RPC:TCP长连接和NIO异步传输(Netty实现);
适合系统的响应时间苛刻的场景(长连接的作用)。
SpringCloud大。
http协议传输,带宽变多
在国内95%的公司,网络消费不是什么问题。 如果真的发生了问题,可以通过压缩、二进制、缓存和逐步降级等方法轻松解决。
很小。
在二进制传输中,带宽更少。
Dubbo约束困难(接口协议约定自由松散)。
需要有力的行政措施来限制接口的无序升级。
容易约束。
统一提供程序提供的服务接口jar包的版本即可。
功能支持
项目Dubbo Spring Cloud服务注册中心Nacos, zookeeperspringcloudnetflixeureka服务调用RPC REST API服务网关Spring Cloud Netflix Zuul无中断sentinelspringcloudnetflixhystrix分布式配置d Config无服务跟踪无Spring Cloud Sleuth消息总线无Spring Cloud Bus数据流无Spring Cloud Stream无批量任务spring cloudtask………………………………………………………………
对于上表中总结为“无”的组件,Dubbo并不意味着无法实现;只是Dubbo框架本身没有提供,为了实现相应的功能,必须单独集成。 示例:
分布式配置:可以使用淘宝diamond、百度disconf实现分布式配置管理。 但是,Spring Cloud的Config组件除了提供配置管理外,还可以使用git进行存储,从而自然地实现配置版本控制,并与APP应用程序版本控制无缝集成。 服务跟踪(可以使用京东开源Hydra批处理任务)可以使用开源Elastic-Job……但是Dubbo本身只是提供了服务管理的基础,其他集群的安全、可维护性和这些组件主要来自国内大型互联网企业的开源产品。
Dubbo已经适应了Spring Cloud生态,例如作为Spring Cloud的二进制通信方案发挥了Dubbo的性能优势,Dubbo通过模块化和HTTP的支持适应了Spring Cloud