Spring Cloud 和 Dubbo 对比:揭示差异

什么是 SpringCloud

Spring Cloud 框架为开发人员提供了快速构建健壮云应用程序的工具。我们还可以构建基于微服务的应用程序,例如配置管理、服务发现、断路器、智能路由、集群状态、微代理、控制总线、一次性令牌等。使用 Spring Cloud,开发人员可以快速开发实现设计模式的服务和应用程序。这些模式在任何分布式环境中都能很好地工作,包括熊金属数据中心、开发人员的笔记本电脑和云铸造等托管平台。

什么是 Dubbo

Apache Dubbo 是一个易于使用、高性能的 WEB 和 RPC 框架,具有内置的服务发现、流量管理、可观察性、安全功能、工具和构建企业级微服务的最佳实践。

Dubbo 是阿里巴巴推出的,多年来一直在成功支持数十亿的服务。

SpringCloud、Dubbo 各自的组织架构

SpringCloud 的组织架构

  • Spring Cloud Config:配置管理开发工具包
  • Spring Cloud Bus:事件、消息总线
  • Spring Cloud Netflix:针对多种 Netflix 组件提供的开发工具包
  • Netflix Eureka:云端负载均衡
  • Netflix Hystrix:容错管理工具
  • Netflix Zuul:边缘服务工具
  • Netflix Archaius:配置管理 API
  • Spring Cloud for Cloud Foundry:通过 Oauth2 协议绑定服务到 CloudFoundry
  • Spring Cloud Sleuth:日志收集工具包
  • Spring Cloud Data Flow:大数据操作工具
  • Spring Cloud Security:安全工具包
  • Spring Cloud Consul:封装了Consul操作
  • Spring Cloud Zookeeper:操作Zookeeper的工具包
  • Spring Cloud Stream:数据流操作开发包
  • Spring Cloud CLI:基于 Spring Boot CLI

Dubbo 的组织架构

  • Provider:生产者
  • Consumer:消费者
  • Registry:注册中心
  • Monitor:监控
  • Container:容器

SpringCloud、Dubbo 各自的优势

SpringCloud 的优势

  • 减少配置比重,更多的是约定,比较灵活
  • 启动速度快,门槛低
  • 兼容多种环境
  • 整体很轻量级
  • 组件种类非常多

Dubbo 的优势

  • 单一应用框架:适用于流量较小的时候
  • 垂直应用框架:适用与流量较大的时候
  • 分布式服务架构:适用于垂直应用架构较多的时候
  • 流动计算架构:当流量超级大的时候,需要一个调度中心

调试 SpringCloud、Dubbo 接口

SpringCloud 代表的是 REST,Dubbo 代表的是 RPC,这是两种接口风格。

想要调试这两种接口,可以使用接口工具 Apifox 进行调试。

如何调试 SpringCloud

使用 Apifox 调试起 REST 接口,非常方便,只需要分几步:

  • 创建 REST 请求
  • 发送 REST 请求

调试 Dubbo 接口

新建 Dubbo 项目

打开 Apifox,在团队中点击右侧的「新建项目」按钮,然后选择 Dubbo 项目。

新建 Dubbo 接口

在 Apifox 新建 Dubbo 接口时需要逐个创建 Package、服务和方法。以 demo/com.dubbo.example.DemoService:1.0.1 接口为例,新建接口时的对照图如下:

调试 Dubbo 接口

我已经 Apifox 中新建了一个 Dubbo 项目并编写了一个接口。开始调试前需要指定接口路径,请求参数。

发送一个 Dubbo 请求

接着我们到达运行页面,填入请求 body 的参数,例如:

并且点击发送运行,得到 Dubbo 服务返回的数据。

知识扩展:

相关推荐
小冷coding10 小时前
【Java】Dubbo 与 OpenFeign 的核心区别
java·开发语言·dubbo
小冷coding15 小时前
【Java】遇到微服务接口报错导致系统部分挂掉时,需要快速响应并恢复,应该怎么做呢?如果支付服务出现异常如何快速处理呢?
java·开发语言·微服务
无心水17 小时前
微服务架构下Dubbo线程池选择与配置指南:提升系统性能与稳定性
java·开发语言·微服务·云原生·架构·java-ee·dubbo
让我上个超影吧18 小时前
天机学堂——播放进度方案优化
java·spring boot·redis·spring cloud
猎人everest18 小时前
Spring Cloud Alibaba 微服务架构拆分api和server的必要性
运维·微服务·架构
深入技术了解原理18 小时前
引入eureka依赖但是无法注册:无法解析配置属性 ‘eureka.client.service-url.defaultZone‘
spring boot·spring cloud·云原生·eureka
BlockChain88818 小时前
Spring Cloud入门篇:微服务架构从0到1(20000字完整指南)
spring cloud·微服务·架构
空空kkk19 小时前
Java项目从单体到微服务的演变
java·运维·微服务
英雄史诗1 天前
系统边界定义与模块拆分原则的成功落地案例
微服务·架构
努力也学不会java1 天前
【Spring Cloud】 服务注册/服务发现
人工智能·后端·算法·spring·spring cloud·容器·服务发现