什么是 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 服务返回的数据。
知识扩展:
- Dubbo 和 gRPC:国内哪个更流行?
- 分布式 RPC 框架比较:dubbo、dubbox、motan、thrift、grpc