Dubbo与SpringCloud的区别和优缺点
经常会有同学问我,Dubbo和SpringCloud的选择。甚至也经常会有面试官就这个问题刨根问底。 说实话,其实我不太喜欢回答这个问题,本质上来讲,Dubbo的SpringCloud可以算是完全不同赛道的两种东西,就好像问大家西瓜和土豆我应该怎么选一样,不过为了让大家在面试时可以更好的回答这个问题,在此我们就分析一下Dubbo和SpringCloud的区别
定义上的区别
Apache Dubbo |ˈdʌbəʊ| 提供了六大核心能力:面向接口代理的高性能RPC调用,智能容错和负载均衡,服务自动注册和发现,高度可扩展能力,运行期流量调度,可视化的服务治理与运维。
Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems 。
翻译:springcloud为开发人员提供了快速构建分布式系统中一些常见模式的工具
以上内容均为官方定义,截图如下:
从以上定义中我们不难看出,Apache Dubbo的目标是基于RPC调用为主,并扩展相应的功能。 而SpringCloud是致力于提供分布式服务的各种工具。可以这样讲,Apache Dubbo从概念上讲只相当于SpringCloud中的feign而已。
出发点不同
Apache Dubbo: 诞生于阿里巴巴的线上需求,主要是为了应对微服务场景下高并发的处理,所以Apache Dubbo的核心关注点就是解决微服务之间调用的性能。 并且将包括服务注册/发现、负载均衡等微服务的核心内容进行了集成。最后在核心调用流程稳定的情况下完成了包括本地存根、Mock、版本控制等诸多特性的集成。
SpringCloud: SpringCloud是Spring家族中在微服务领域的关键组成部分,延续了Spring一贯的风格:为大家提供好用的工具,可以屏蔽底层实现,一站式完成业务开发。包括后面的SpringCloud Netflix和SpringCloud Alibaba等都是基于此完成工具的开发。我们可以大概数一数SpringCloud的工具内容,Ribbon【负载均衡】、Feign【HTTP服务】、Hystrix【熔断降级】、Gateway【网关】等等,从其中我们不难发现,SpringCloud对于微服务的调用的性能并不太关心,它更关心的是处理微服务调用以外的内容,虽然他勉为其难的搞了一个Feign,但是我们都知道,HTTP的调用是非常耗时的,它与RPC的调用效率完全不可同日而语。
综上所述:Apache Dubbo的目标是为了高效调用服务。SpringCloud的目标是一条龙解决微服务的治理问题,那么出发点都不同,比较的意义又在哪里呢。
真实工作场景
事实上,目前我接触和了解的互联网大厂的项目里,单纯的使用SpringCloud的非常少。虽然不全是选用Apache Dubbo, 还有包括Thrift、Zero等微服务框架,但是Apache Dubbo的市场占有率会相对比较高,也是很多大厂项目的首选。
但是Apache Dubbo的服务治理其实并不太好用,比如熔断降级、限流等,同时Apache Dubbo还有一个比较麻烦的问题, 就是没有HTTP调用的逻辑,这一点对前后端分离的项目非常不友好。
基于以上内容,其实在实际项目中, Apache Dubbo和SpringCloud相结合才是目前比较主流的使用方式。服务之间的调用使用Apache Dubbo。熔断、网关、限流等使用SpringCloud。尤其是在拥有了SpringCloud Alibaba以后,SpringCloud与Apache Dubbo的结合更加紧密,这才是我个人建议的使用方式。
喜欢的朋友记得点赞、收藏、关注哦!!!
相关文章:
Dubbo与SpringCloud的区别和优缺点
经常会有同学问我,Dubbo和SpringCloud的选择。甚至也经常会有面试官就这个问题刨根问底。 说实话,其实我不太喜欢回答这个问题,本质上来讲,Dubbo的SpringCloud可以算是完全不同赛道的两种东西,就好像问大家西瓜和土豆我…...
★ C++进阶篇 ★ 多态
Ciallo~(∠・ω< )⌒☆ ~ 今天,我将继续和大家一起学习C进阶篇第二章----多态 ~ ❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️ 澄岚主页:椎名澄嵐-CSDN博客 C基础篇专栏:★ C基础篇 ★_椎名澄嵐的博客-CSDN博客 …...
pg入门3—详解tablespaces2
pg默认的tablespace的location为空,那么如果表设置了默认的tablespace,数据实际上是存哪个目录的呢? 在 PostgreSQL 中,如果你创建了一个表并且没有显式指定表空间(tablespace),或者表空间的 location 为…...
python 爬虫 selenium 笔记
todo 阅读并熟悉 Xpath, 这个与 Selenium 密切相关、 selenium selenium 加入无图模式,速度快很多。 from selenium import webdriver from selenium.webdriver.chrome.options import Options# selenium 无图模式,速度快很多。 option Options() o…...
git分支管理的一些常用规范
一、分支命名规范 1.通常项目经理或者需求方会给需求开发做计划,约定一些编码,例如FN-01。此时这个需求指派给你,这个时候你可以在现有代码仓库的maser分支或者其他约定的开发分支checkout到本地,命名这个需求的开发分支为feat/F…...
GPT-4论文阅读
GPT-4 Technical Report论文阅读 文章目录 GPT-4 Technical Report论文阅读 Abstract训练的稳定性Training processPredictable scaling训练的稳定性多么难能可贵 Capabilities考试成绩传统的benchmark语言方面的能力Visual inputsSteerability LimitationsRisks & mitigat…...
this 指向
this 指向谁? 多数情况下,this 指向调用它所在方法的那个对象。 说得更通俗点,谁调的函数,this 就归谁。当调用方法没有明确对象时,this 就指向全局对象。在浏览器中,指向 window;在 Node 中,指向 Global。(严格模式下,指向 undefined) this 的指向是在调用时决定的…...
【贪心算法】贪心算法一
贪心算法一 1.柠檬水找零2.将数组和减半的最少操作次数3.最大数4.摆动序列 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.柠檬水找零 题目…...
windnd.hook_dropfiles中的create_buffer值太小无法拖放长文件名
今天在使用我之前的Python识别拖放的PDF文件再转成文本文件-CSDN博客发现,文件藏在路径太深入的地方,不能打开,因为拖放文件只能读取260个字节的文件名(b’路径),再查看windnd.hook_dropfiles函数ÿ…...
Gitlab runner的使用示例(二):Maven + Docker 自动化构建与部署
Gitlab runner的使用示例(二):Maven Docker 自动化构建与部署 在本篇文章中,我们将详细解析一个典型的 GitLab CI/CD 配置文件(gitlab-ci.yml),该文件主要用于通过 Maven 构建 Java 应用&…...
QNX Hypervisor(十)Linux Guest IPC 二
上文还遗留了一个问题,就是在测试ipc的时候挂死了。相关原理我写在了另外一篇文章。 内存管理 所以导致挂死的问题就是因为没有进行地址映射,mmu无法转换。从kernel代码看,只有ram区域才会进行映射。我们的qvmconf文件也确实没有配置0xb8000000,只配置了pass。 pass loc …...
怎样把PPT上顽固的图标删了
例如: 解决: 首先打开下载好的PPT模板,然后在视图选项卡里面找到幻灯片母版。 进入幻灯片母版后,找到第一页母版页就会看到LOGO了,这时使用鼠标就可以选中删除啦。...
【论文阅读】Slim Fly: A Cost Effective Low-Diameter Network Topology 一种经济高效的小直径网络拓扑
文章目录 Slim Fly: A Cost Effective Low-Diameter Network Topology文章总结1. 摘要2. indroduction3. 主要工作 主要思想references Slim Fly: A Cost Effective Low-Diameter Network Topology Slim Fly:一种经济高效的小直径网络拓扑 SC’14 Maciej Besta 苏…...
Prometheus使用Pushgateway推送数据
Pushgateway简介 Prometheus 的 Pushgateway 是一个简单的 HTTP 服务器,它允许数据被推送到该服务器,而不是通过拉取的方式获取。它的存在是为了让临时和批处理作业能够将其指标暴露给 Prometheus。由于这类作业可能存在的时长不足以被主动抓取…...
【Oracle】调优与oracle最大连接数配置
博主介绍: 大家好,我是想成为Super的Yuperman,互联网宇宙厂经验,17年医疗健康行业的码拉松奔跑者,曾担任技术专家、架构师、研发总监负责和主导多个应用架构。 技术范围: 目前专注java体系,DDD&…...
Unity教程(十六)敌人攻击状态的实现
Unity开发2D类银河恶魔城游戏学习笔记 Unity教程(零)Unity和VS的使用相关内容 Unity教程(一)开始学习状态机 Unity教程(二)角色移动的实现 Unity教程(三)角色跳跃的实现 Unity教程&…...
图像超分辨率(ISR)
图像超分辨率(Image Super-Resolution, ISR)是一种图像处理技术,旨在通过软件算法从低分辨率的图像中重建出高分辨率的图像。这种技术对于改善图像质量、增加细节清晰度等方面非常重要,特别是在图像放大、卫星成像、医学成像和视频…...
园区网基础组网保姆级(mstp,vrrp,irf,eth-trunk,route-policy,ospf,bgp,rbm,nat,mlag等等)
本文实验使用模拟器:H3C HCL 5.10.2版本 一、园区核心/接入架构1.1.三层架构1.2.二层架构二、园区核心 To 接入实践2.1.MSTP+VRRP派系2.1.1.MSTP+VRRP配置2.1.2.MSTP+VRRP验证2.2.IRF+Eth-Trunk派系2.2.1.IRF+Eth-Trunk配置2.3.两种派系的对比2.4.VXLAN结构三、园区核心/出口架…...
大数据技术原理与应用
第一章、大数据概述 1、大数据时代的特征,并结合生活实例谈谈带来的影响。 (一)特征 1、Volume 规模性:数据量大。 2、Velocity高速性:处理速度快。数据的生成和响应快 摩尔定律:每两年,数…...
《黑神话悟空》开发框架与战斗系统解析
本文主要围绕《黑神话悟空》的开发框架与战斗系统解析展开 主要内容 《黑神话悟空》采用的技术栈 《黑神话悟空》战斗系统的实现方式 四种攻击模式 连招系统的创建 如何实现高扩展性的战斗系统 包括角色属性系统、技能配置文件和逻辑节点的抽象等关键技术点 版权声明 本…...
YOLOv11桌面应用实战:PyQt5打造智能监控与目标追踪系统
1. YOLOv11与PyQt5的强强联合 在计算机视觉领域,YOLO系列模型一直以其实时性和准确性著称。最新发布的YOLOv11在保持原有优势的基础上,进一步优化了模型结构和训练策略,使其在小目标检测和复杂场景下的表现更加出色。而PyQt5作为Python生态中…...
形式验证实战:5个降低状态空间复杂度的黑科技(附内存控制器案例)
形式验证实战:5个降低状态空间复杂度的黑科技(附内存控制器案例) 在芯片设计领域,形式验证(Formal Verification, FV)正逐渐成为确保设计正确性的重要手段。然而,随着设计复杂度的提升ÿ…...
直方图均衡化:从理论到实践——MATLAB代码实现与效果对比
1. 直方图均衡化基础概念 直方图均衡化是数字图像处理中最基础也最实用的技术之一。简单来说,它就像给照片做了一次"智能美颜",能够自动调整图像的对比度,让暗部更清晰、亮部更细腻。想象一下你拍摄了一张背光的人像照片࿰…...
个人简介及未来展望
前言(自我介绍):各位浏览者,大家好:我是来自辽宁工程技术大学 电气与控制工程学院 自动化专业的大一新生王阔遒,现在也就是2026年4月5日,我开始书写我的人生第一篇博客,我对编程有着…...
ADC类型解析与选型指南:从闪存到ΔΣ
1. ADC基础概念与核心原理在电子系统中,模拟信号到数字信号的转换(ADC)是实现物理世界与数字世界交互的关键桥梁。作为一名嵌入式开发者,我经常需要根据项目需求选择不同类型的ADC拓扑结构。让我们先拆解ADC的核心工作机制。ADC转…...
二十载面香溢加州:鲁味居(101 Noodle Express)的北美餐饮进阶启示录
近日,南加州知名中餐地标品牌“鲁味居(101 Noodle Express)”正式迎来创立二十周年。在竞争激烈的北美餐饮市场,该品牌凭借对中国纯正传统面食与非遗卤味技艺的坚守,不仅确立了其在海外华人圈层的核心地位,…...
2025届学术党必备的六大AI论文助手解析与推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek DeepSeek身为人工智能写作工具,于学术论文撰写里能够起到辅助方面的作用…...
第25课:让 Qt 从 GPIO 子系统一路进阶到平台驱动与设备树控制
本节路线图 为什么这一课要把三种GP → 先从GPIO子系统开始: → 再进一步:平台驱动让LE 小猫提醒 这节有分区、烧录或删除类操作,先确认盘符和路径,再按回车。 猫头鹰提示 编译前先对齐目标架构和工具链名字,别让主机程序和板卡程序搞混。 上一课我们已经把 Qt 和字符驱动…...
光学工程师进阶指南:从入门到精通的实战路径
1. 光学工程师的职业发展路径 光学工程师的成长就像搭积木,需要从最基础的模块开始,一层层往上搭建。我刚入行时也走过不少弯路,后来才明白这个职业的发展是有明确路径的。一般来说,我们可以把成长过程分为三个阶段:初…...
比话降AI实测:AI率87%的论文降到11%全程记录
这篇是比话降AI的真实使用记录,不是广告软文,是我帮朋友处理论文的完整过程。 朋友的情况:研究生论文,4.2万字,知网AIGC检测87%,距离提交截止7天。 为什么选比话降AI 比话降AI(www.bihuapass…...
