Spring Cloud 与 Dubbo 区别

  Dubbo Spring Cloud
服务注册中心       Zookeeper Spring Cloud Netflix Eureka
服务调用方式 RPC           REST API
服务监控 Dubbo-monitor Spring Boot Admin
断路器 不完善 Spring Cloud Netflix Hystrix
服务网关 Spring Cloud Netflix Zuul
分布式配置 Spring Cloud Config
服务跟踪 Spring Cloud Sleuth
消息总线 Spring Cloud Bus
数据流 Spring Cloud Stream
批量任务 Spring Cloud Task
...... ...... ......
最大的区别:Spring Cloud抛弃了Dubbo 的RPC通讯,采用的是基于HTTP的REST方式。
严格来讲,这两种方式各有优劣。虽然在必定程度上来讲,后者牺牲了服务调用的性能,但也避免了上面提到的原生RPC带来的问题。并且REST相比RPC更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更为合适。
总结:
Dubbo和Spring Cloud并非彻底的竞争关系,二者所解决的问题域不同:Dubbo的定位始终是一款RPC框架,而Spring Cloud的目的是微服务架构下的一站式解决方案。非要比较的话,Dubbo能够类比到Netflix OSS技术栈,而Spring Cloud集成了Netflix OSS做为分布式服务治理解决方案,但除此以外Spring Cloud还提供了包括config、stream、security、sleuth等分布式服务解决方案。
当前因为RPC协议、注册中心元数据不匹配等问题,在面临微服务基础框架选型时Dubbo与Spring Cloud只能二选一,这也是二者总拿来作对比的缘由。Dubbo以后会积极寻求适配到Spring Cloud生态,好比做为SpringCloud的二进制通信方案来发挥Dubbo的性能优点,或者Dubbo经过模块化以及对http的支持适配到Spring Cloud
相关文章
相关标签/搜索