SpringCloud与Dubbo的比较

2023-11-18

目录

Dubbo

一、dubbo简介

二、dubbo组织架构图

三、dubbo的优势

SpringCloud

一、SpringCloud简介

二、SpringCloud组织架构

三、SpringCloud特点

四、Dubbo与SpringCloud的比较

4.1 dubbo与SpringCloud的核心要素比较

4.2 整体比较


Dubbo

一、dubbo简介

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

现已发展成为Apache的顶级孵化开源项目,详见官网:
Dubbo官网http://dubbo.apache.org/en-us/

二、dubbo组织架构图

官网的dubbo组织架构图

详细介绍

1、Registry:服务注册与发现中心,作为服务提供者和消费者注册与发现的中心。

2、Provider:服务提供者,在注册中心注册作为服务提供的一方,发布服务到服务注册中心。

3、Consumer:服务消费者,通过注册中心协调,订阅可用的已注册的服务。

4、Container:服务运行容器,独立的容器类似于tomcat/jboss的作用,作为服务运行的容器。

5、Monitor:dubbo的监控中心,用来显示接口暴露、注册情况,也可以看接口的调用明细,调用时间等。

三、dubbo的优势

  1. 单一应用架构,当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的 数据访问框架(ORM)是关键。
  2. 垂直应用架构,当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的 Web框架(MVC)是关键。
  3. 分布式服务架构,当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的 分布式服务框架(RPC)是关键。
  4. 流动计算架构当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的 资源调度和治理中心(SOA)是关键。

SpringCloud

一、SpringCloud简介

SpringCloud是一系列框架的有序集合。它基于SpringBoot的便利性融合了一整套实现微服务的框架并提供了服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等组件。

SpringCloud的官网:        Spring CloudLevel up your Java code and explore what Spring can do for you.https://spring.io/projects/spring-cloud

二、SpringCloud组织架构

简单SpringCloud组织架构图

spring cloud子项目包括:

  Spring Cloud Config:配置管理开发工具包,可以让你把配置放到远程服务器,目前支持本地存储、Git以及Subversion。

  Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。

  Spring Cloud Netflix:针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。

  Netflix Eureka:云端负载均衡,一个基于 REST 的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移。

  Netflix Hystrix:容错管理工具,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

  Netflix Zuul:边缘服务工具,是提供动态路由,监控,弹性,安全等的边缘服务。

  Netflix Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。

  Spring Cloud for Cloud Foundry:通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。

  Spring Cloud Sleuth:日志收集工具包,封装了Dapper,Zipkin和HTrace操作。

  Spring Cloud Data Flow:大数据操作工具,通过命令行方式操作数据流。

  Spring Cloud Security:安全工具包,为你的应用程序添加安全控制,主要是指OAuth2。

  Spring Cloud Consul:封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。

  Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务注册和发现。

  Spring Cloud Stream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。

  Spring Cloud CLI:基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。

更多SpringCloud详细见另一篇文章:

                                              深入理解SpringCloud与微服务构建

三、SpringCloud特点

1:约定优于配置

2:开箱即用、快速启动

3:适用于各种环境

4:轻量级的组件

5:组件支持丰富,功能齐全

四、Dubbo与SpringCloud的比较

4.1 dubbo与SpringCloud的核心要素比较

核心要素

4.2 整体比较

1、dubbo由于是二进制的传输,占用带宽会更少

2、springCloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大

3、dubbo的开发难度较大,原因是dubbo的jar包依赖问题很多大型工程无法解决

4、springcloud的接口协议约定比较自由且松散,需要有强有力的行政措施来限制接口无序升级

5、dubbo的注册中心可以选择zk,redis等,springcloud的注册中心用eureka或者Consul

我是程序大视界,坚持原创技术博客分享。

注:如果本篇博客有任何纰漏和建议,欢迎私信或评论留言!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringCloud与Dubbo的比较 的相关文章

  • Spring Cloud 发现多个服务版本

    我在问自己一个问题 但没有找到答案 也许这里有人对此有想法 在 Spring Cloud 中使用服务注册表 Eureka 与 RestTemplate 和 Feign 客户端 我有不同的构建版本的同一服务 通过 Actuator 的 inf
  • @RefreshScope 与 @ConditionalOnProperty 不起作用

    Problem 探索启用 禁用的选项 RequestMapping按需端点 无需重新启动 JVM 在运行时在端点上实现终止开关 Attempt 我已经尝试过以下方法但是 RefreshScope似乎不适合 ConditionOnProper
  • Spring Cloud Contract 从 Artifactory 检索存根时出现问题

    我对两个消费者和一个生产者进行了离线工作正常的测试 但是当我更改它们以从 Artifactory 检索存根时 消费者测试失败 这是离线工作的代码 RunWith SpringRunner class SpringBootTest class
  • Zuul 反向代理与 Keycloak 服务器

    我正在使用 Zuul 反向代理实用程序配置 Spring Cloud Angel SR6 应用程序 以隐藏内部服务端口 我的 zuul 边缘 服务发布在 8765 端口 我的组织服务发布在 8083 端口 当我在没有安全性的情况下访问应用程
  • 了解 XDR 规范以创建 *.x 文件

    我浏览了互联网上的几个网站 实际上想知道我们如何在规范中编写规范 x文件以生成等效函数 通常 您可以从 x 文件生成三 组 代码 消息 xdr 编码器 解码器函数 客户端存根和服务器存根 当然 您也可以手动完成 但要做到正确的工作量太大 使
  • 无法从 Spring Cloud Config Server 获取值到我的 Config-Client(limits-service)

    经过几天的互联网搜索和多次尝试 对我来说没有任何结果 我在这里写下 我有项目 弹簧云配置服务器其中包含以下文件 可以从以下位置访问完整项目https github com AshishBharadwaj94 spring cloud con
  • 异步双向 RPC

    我正在寻找使用 TCP 的 Java 或 Python 首选 Python 的 RPC 库 它应该支持 异步 双向 RPC 某种事件循环 带有回调或类似 有什么建议吗 我看过像 bjsonrpc 这样的东西 这似乎是正确的东西 但是服务器似
  • 在 Feign 客户端 + Spring Cloud (Brixton RC2) 中使用带有动态值的 @Headers

    是否可以为标头设置动态值 FeignClient name Simple Gateway interface GatewayClient Headers X Auth Token token RequestMapping method Re
  • PHP 的同步 AMQP

    PHP 能否像 RPC 服务一样对待 AMQP 发送消息并阻塞直到返回回复 是否有任何好的示例 是否有任何库以易于使用的方式包装此类功能 我希望拥有代理消息传递系统的灵活性 但避免 Web 层需要了解其异步性质 当然 绝对 看看 RPC 风
  • Spring Boot + 云 | Zuul代理 |集成测试

    当使用 Spring Boot 构建微服务时 可以非常轻松地编写大量且非常易读的集成测试并模拟远程服务请求MockRestServiceServer 有没有办法使用类似的方法来执行额外的集成测试ZuulProxy 我想要实现的是能够模拟远程
  • 如何配置 Spring Cloud Stream 中函数的绑定,以将其输入绑定到 Web 端点并将其输出绑定到 Kafka 主题

    我有一个普通的javaFunction 我正在尝试绑定 它对 Web 端点的输入 其输出到 kafka 主题 当我在网络环境中使用我的函数时 它总是返回结果值Function单独回到网络客户端 我可以做这样的事情吗 spring cloud
  • 如何通过RPC监听firestore

    我想听firestore中的实时变化 而且我也只允许使用Go 由于 Firestore SDK for Go 没有任何选项来监听实时更改 因此我决定使用 firestore v1beta1 sdk 我编写了以下代码来做到这一点 func T
  • 将 SpringCloudSleuth 与 AWS X-Ray 集成

    我有一个使用 Springboot 应用程序运行 Fargate 实例的 ECS 集群 并且希望以最少的代码更改来启用跟踪 我开始研究两种方法 使用 AWS Xray 步骤 gt 添加依赖项 添加 WSXRayServletFilter 在
  • 自定义Zuul异常

    我在 Zuul 中有一个场景 其中 URL 路由的服务也可能已关闭 因此 响应正文会在 JSON 正文响应中抛出 500 HTTP Status 和 ZuulException timestamp 1459973637928 status
  • 在随机端口上运行微服务时,Eureka 无法找到端口

    我在 Spring Boot 应用程序中使用 eureka 进行服务发现 使用功能区进行负载平衡 当我在修复端口上运行在 eureka 注册的微服务时 它工作正常 但是当我在随机端口上运行它们时 尽管我可以看到在 eureka 仪表板上注册
  • Zuul - Api 网关身份验证

    我想在几个服务前面通过Spring Cloud引入Zuul作为API网关 我对身份验证有一些设计疑问 身份验证将由 Spring Security 处理 它位于 servlet 过滤器链中的 Zuul 之前 我的顾虑 网关将位于许多服务的前
  • 微服务之间的通信

    假设您有微服务 A B 和 C 它们当前都通过 HTTP 进行通信 假设服务 A 向服务 B 发送请求 服务 B 得到响应 然后 该响应中返回的数据必须发送到服务 C 进行一些处理 然后最终返回到服务 A 服务 A 现在可以在网页上显示结果
  • Spring Cloud 配置服务器无法使用本地属性文件

    我一直在玩弄位于此处的 github 上的 Spring Cloud 项目 https github com spring cloud spring cloud config https github com spring cloud sp
  • ZuulProxy 在应该执行故障转移时失败,并显示“RibbonCommand 超时且没有可用的后备”

    简短的介绍 我试图让 ZuulProxy 来处理实例故障转移 但它抛出 ZuulException 转发错误 而不是使用工作实例的结果进行响应 详细描述 我的设置是一台独立的 Eureka Server 一台 ConfigServer 一台
  • gwt hibernate 程序中的异常

    我正在尝试制作一个简单的 GWT RPC Hibernate 程序 将用户添加到 MySQL 数据库 我正在使用 Eclipse EE 该应用程序已成功将用户添加到数据库 但在编译时引发异常 这是我的应用程序的例外情况和来源 例外 Exce

随机推荐

  • ubuntu 如何放开端口

    在 Ubuntu 上放开端口 可以通过以下步骤进行操作 使用 root 用户或具有管理员权限的用户登录到 Ubuntu 系统 使用防火墙工具 如ufw 放开特定的端口 ufw 是 Ubuntu 上的一个简化的防火墙配置工具 可以轻松管理端口
  • JS阻止事件冒泡的3种方法

    什么是JS事件冒泡 在一个对象上触发某类事件 比如单击onclick事件 如果此对象定义了此事件的处理程序 那么此事件就会调用这个处理程序 如果没有定义此事件处理程序或者事件返回true 那么这个事件会向这个对象的父级对象传播 从里到外 直
  • 小技巧粗讲 - 用栈实现括号匹配的判断

    Codeforces上有一道我曾经讲过的题 买看过的小伙伴看这个链接 https blog csdn net ericgipsy article details 79980874 然后再来一道题 http www fjutacm com P
  • 2021年11月6日-11月12日(ogre抄写+ue4视频,本周35小时,共1035小时,剩8965小时。)

    这周还不错 不但完成了本周学习任务 还完成了本月学习任务 方法就是 拼命抄源码 抄到吐时就再看看Ue4视频教程 内外兼修 可以在未来的日子里这么进行 每天5小时学习 还是进入状态的 5 7 35小时 共1035小时 剩8965小时 另外 去
  • [HBZ分享] 小米手机如何解BL锁

    第一步 进入 设置 gt 我的设备 gt 全部参数 gt 连续疯狂的点MIUI版本那一行 第二步 进入 更多设置 gt 开发者模式 打开USB调试 与 USB安装 第三步 进入 更多设置 gt 开发者模式 进入 设别解锁状态 在下方有一个
  • 利用PostMan 模拟上传/下载文件

    我们经常用postman模拟各种http请求 但是有时候因为业务需要 我们需要测试上传下载功能 其实postman也是很好支持这两种操作的 一 上传文件 1 打开postman 选择对应request类型 以及url 2 选择body 单击
  • OkHttp3封装网络请求框架

    网络请求是开发中最基础的功能 框架原生API不便于复用 今天在这里分享慕课一位老师基于OkHttp封装的一个思路 希望对大家有帮助 首先 我们看一下Okhttp的基本使用 发送异步GET请求 1 new OkHttpClient 2 构造R
  • apt、apt-get、apt-cache使用详解

    文章目录 1 概述 2 搜索软件 查看软件信息 依赖关系 3 查看已安装软件 4 安装 升级软件 5 删除 6 清理 检查 7 忽略更新 8 apt get参数 9 参考文档 1 概述 apt apt get apt cache是三个软件
  • js修改数组中对象的key值

    不删除旧的key和value var data name 路口1 count 30 name 路口2 count 20 name 路口3 count 10 data data map item gt item value item coun
  • vue-router传参的四种方式超详细

    vue路由传参的四种方式 一 router link路由导航方式传参 父组件
  • 微服务优点缺点

    微服务架构采用Scale Cube方法设计应用架构 将应用服务按功能拆分成一组相互协作的服务 每个服务负责一组特定 相关的功能 每个服务可以有自己独立的数据库 从而保证与其他服务解耦 耦合是指两个或两个以上的体系或两种运动形式间通过相互作用
  • 移动端按设计图1:1布局方法

    1 为什么要写这篇教程 移动端布局大多数前端工程师使用的是百分比布局 然而百分比布局造成了很多问题 比如图片在不同分辨率下会有变形的问题 高度需要按照分辨率去兼容适配等等 今天给大家分享的这种布局方式 可以摈弃百分比布局 直接根据设计图1
  • 管道符和xargs

    先看一个例子 今天上了一门Linux课 其中有一道题是这样的 将文件 lib 目录下所有以包含 so的文件复制到cmd test目录下 一开始看到这个题 想法是先用find命令找出包含 so的文件 然后使用管道符cp 如下 find lib
  • robotstudio要从当前占位符中提取IRB2600....

    如上图所示 在添加singal后重启控制器便出现了这样的提示 找了一圈也没有找到答案 希望有高人指点指点
  • 关于8266WiFi模块(AT)问题分析与解答(单片机和wifi模块连接)

    近段时间由于作品需要 就入手了一个esp 01 s 8266wifi模块 厂家已经刷好固件 这个模块使用起来还是很简单便捷的 但是在调试过程中会遇到各种问题 以下是个人的一个总结 希望对大家有帮助 1 单片机晶振和波特率问题 重要 有关单片
  • 基于预测控制模型的自适应巡航控制仿真与机器人实现(Matlab代码实现)

    目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 1 概述 自适应巡航控制技术为目前由于汽车保有量不断增长而带来的行车安全 驾驶舒适性及交通拥堵等问题提供了一条有效的解决途径 因此本文通过理论分析 仿真验证及实车实验对自适应
  • 使用editor.md渲染markdown并自定义目录

    使用editor md渲染markdown并自定义目录 一 需求 最近在开发个人博客 在做文章详情页的时候 需要将markdown格式的文本字符串渲染成html页面 于是逛github的时候发现了这一款markdown在线编辑器 它支持将m
  • Json“牵手”亚马逊商品详情数据方法,亚马逊商品详情API接口,亚马逊API申请指南

    亚马逊平台是美国最大的一家网络电子商务公司 亚马逊公司是1995年成立 刚开始只做网上书籍售卖业务 后来扩展到了其他产品 现在已经是全世界商品品种最多的网上零售商和第二互联网公司 亚马逊是北美洲 欧洲等地区的主流购物平台 亚马逊商品分类接口
  • Office Visio 2007安装教程

    哈喽 大家好 今天一起学习的是Visio 2007的安装 这是一个绘制流程图的软件 用有效的绘图表达信息 比任何文字都更加形象和直观 Office Visio 是office软件系列中负责绘制流程图和示意图的软件 便于IT和商务人员就复杂信
  • SpringCloud与Dubbo的比较

    目录 Dubbo 一 dubbo简介 二 dubbo组织架构图 三 dubbo的优势 SpringCloud 一 SpringCloud简介 二 SpringCloud组织架构 三 SpringCloud特点 四 Dubbo与SpringC