写点什么

选择正确的框架:探索 Spring Cloud 和 Dubbo

作者:Liam
  • 2023-09-06
    广东
  • 本文字数:1221 字

    阅读完需:约 4 分钟

选择正确的框架:探索 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 服务返回的数据。


知识扩展:

用户头像

Liam

关注

没有一个bug是无辜的! 2021-12-23 加入

一个简单的程序员!

评论

发布
暂无评论
选择正确的框架:探索 Spring Cloud 和 Dubbo_程序员_Liam_InfoQ写作社区