十余年从业经验告诉你,Dubbo和SpringCloud的优缺点对比

简介: 其实我个人不太愿意,拿Dubbo和Spring Cloud进行对比,因为它俩最初出现并不是为了解决同一类问题。但是,国内技术是在太卷,加上微服务的盛行,很多互联网大厂也经常会问到这个问题。那么今天,我还是给大家来详细聊一聊。

其实我个人不太愿意,拿Dubbo和Spring Cloud进行对比,因为它俩最初出现并不是为了解决同一类问题。但是,国内技术是在太卷,加上微服务的盛行,很多互联网大厂也经常会问到这个问题。那么今天,我还是给大家来详细聊一聊。


另外,我花了1个多星期把往期的面试题解析配套文档准备好了,想获取的小伙伴可以在我的煮叶简介中找到。

1、两者对比

关于Dubbo和Spring Cloud的优缺点,我以奈菲(Netflix)版本为例,从以下5个方面来分析:


1)、从整体架构上来看

Dubbo和SpringCloud的模式都比较接近,都需要服务提供方,注册中心,服务消费方。差异并不大。Dubbo的架构图是这样的,

a507660002699b721b931dd16f459771.jpg

而Spring Cloud的架构图是这样的

cc34da28e29c1d7b8b1ec296262e3c7c.jpg

2)、从核心要素来看

7b0b6033b3bebd810246cc96806e6ffe.jpg

Spring Cloud 更胜一筹,在开发过程中只要整合Spring Cloud的子项目就可以顺利的完成各种组件的融合,而Dubbo需要通过实现各种Filter来做定制,开发成本以及技术难度略高。


3)、从协议上看

48b70423009f6dc4c9b894f198b9610e.jpg

Dubbo默认采用的是单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。Dubbo还支持其他各种通信协议,而Spring Cloud 使用HTTP协议的REST API。因此,在通信速度上Dubbo略胜。


4)、从服务依赖方式看

4bc8ca2577702ae8f6088b068f8e80c5.jpg

Dubbo服务依赖比较重,需要有完善的版本管理机制,但是程序入侵少。而Spring Cloud是自有生态,省略了版本管理的问题,它使用JSON进行交互,为跨平台调用奠定了基础。


5)、从组件运行流程看

ebe13ed12fb607bf1c44260f70542ea0.jpg

Dubbo的每个组件都是需要部署在单独的服务器上, 用来接收前端请求、聚合服务,并批量调用后台原子服务。每个Service层和单独的DB交互。

a33bd04a32a5c937951f9a8a34f302fb.jpg

而Spring Cloud所有请求都统一通过 API 网关(Zuul)来访问内部服务。网关接收到请求后,从注册中心(Eureka)获取可用服务。由 Ribbon 进行均衡负载后,分发到后端的具体实例。微服务之间通过 Feign 进行通信处理业务。

b2ad6606433431adba4b73bb25530b4e.jpg

但是,两者的业务部署方式相同,都需要前置一个网关来隔绝外部直接调用原子服务的风险。Dubbo需要自己开发一套API 网关,而Spring Cloud则可以通过Zuul配置就可以完成网关定制。所以,从使用方式上Spring Cloud更加方便。

相关文章
|
2月前
|
SpringCloudAlibaba Dubbo Java
【五】SpringCloud Alibaba之整合Dubbo(实现远程调用)
【五】SpringCloud Alibaba之整合Dubbo(实现远程调用)
88 0
|
2月前
|
Dubbo 网络协议 安全
【Dubbo 解析】Dubbo 支持哪些协议,它们的优缺点有哪些?
【1月更文挑战第11天】【Dubbo 解析】Dubbo 支持哪些协议,它们的优缺点有哪些?
|
2月前
|
SpringCloudAlibaba Dubbo Java
SpringCloud Alibaba集成Dubbo实现远程服务间调用
SpringCloud Alibaba集成Dubbo实现远程服务间调用
|
8月前
|
Dubbo Java 应用服务中间件
微服务技术系列教程(30) - Dubbo-SpringCloud与Dubbo区别
微服务技术系列教程(30) - Dubbo-SpringCloud与Dubbo区别
55 0
|
10月前
|
Dubbo Java 应用服务中间件
深入了解Spring Cloud Alibaba Dubbo
在现代分布式系统开发中,构建高性能、可伸缩性和弹性的微服务架构变得越来越重要。Spring Cloud Alibaba Dubbo(简称Dubbo)是一个开源的分布式服务框架,可以帮助开发者构建强大的微服务架构,具备负载均衡、服务治理、远程调用等强大功能。本文将深入介绍Spring Cloud Alibaba Dubbo,帮助你理解它的核心概念、工作原理以及如何在你的项目中使用它。
|
2月前
|
Dubbo Java 应用服务中间件
阿里巴巴资深架构师深度解析微服务架构设计之SpringCloud+Dubbo
软件架构是一个包含各种组织的系统组织,这些组件包括Web服务器,应用服务器,数据库,存储,通讯层),它们彼此或和环境存在关系。系统架构的目标是解决利益相关者的关注点。
|
2月前
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo: 微服务通信的高效解决方案
【4月更文挑战第28天】在微服务架构的发展中,服务间的高效通信至关重要。Spring Cloud Dubbo 提供了一种基于 RPC 的通信方式,使得服务间的调用就像本地方法调用一样简单。本篇博客将探讨 Spring Cloud Dubbo 的核心概念,并通过具体实例展示其在项目中的实战应用。
44 2
|
2月前
|
负载均衡 Dubbo Java
SpringCloud和Dubbo有哪些区别
SpringCloud和Dubbo有哪些区别
|
2月前
|
Dubbo Java 应用服务中间件
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
266 0
|
2月前
|
Dubbo Java 应用服务中间件
Dubbo与Spring Cloud的区别?
总之,Dubbo和Spring Cloud都是分布式系统开发中的重要工具,根据项目需求和技术栈的选择,可以选择适合的框架来构建分布式微服务架构。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
23 0