本文将基于 Dubbo Samples 示例演示如何快速搭建并部署一个微服务应用。
背景
Dubbo 作为一款微服务框架,最重要的是向用户提供跨进程的 RPC 远程调用能力。如上图所示,Dubbo 的服务消费者(Consumer)通过一系列的工作将请求发送给服务提供者(Provider)。
为了实现这样一个目标,Dubbo 引入了注册中心(Registry)组件,通过注册中心,服务消费者可以感知到服务提供者的连接方式,从而将请求发送给正确的服务提供者。
目标
了解微服务调用的方式以及 Dubbo 的能力
难度
低
环境要求
系统:Windows、Linux、MacOS
JDK 8 及以上(推荐使用 JDK17)
Git
Docker (可选)
动手实践
本章将通过几个简单的命令,一步一步教你如何部署并运行一个最简单的 Dubbo 用例。
1. 获取测试工程
在开始整个教程之前,我们需要先获取测试工程的代码。Dubbo 的所有测试用例代码都存储在 apache/dubbo-samples 这个仓库中,以下这个命令可以帮你获取 Samples 仓库的所有代码。
git clone --depth=1 --branch master git@github.com:apache/dubbo-samples.git
2. 认识 Dubbo Samples 项目结构
在将 apache/dubbo-samples 这个仓库 clone 到本地以后,本小节将就仓库的具体组织方式做说明。
.
├── codestyle // 开发使用的 style 配置文件
├── 1-basic // 基础的入门用例
├── 2-advanced // 高级用法
├── 3-extensions // 扩展使用示例
├── 4-governance // 服务治理用例
├── 10-task // Dubbo 学习系列示例
├── 99-integration // 集成测试使用
├── test // 集成测试使用
└── tools // 三方组件快速启动工具
如上表所示,apache/dubbo-samples 主要由三个部分组成:代码风格文件、测试代码、集成测试。
代码风格文件是开发 Dubbo 代码的时候可以使用,其中包括了 IntelliJ IDEA 的配置文件。
测试代码即本教材所需要的核心内容。目前包括了 5 个部分的内容:面向初学者的 basic 入门用例、面向开发人员的 advanced 高级用法、面向中间件维护者的 extensions Dubbo 周边扩展使用示例、面向生产的 governance 服务治理用例以及 Dubbo 学习系列。本文将基于 basic 入门用例中最简单的 Dubbo API 使用方式进行讲解。
集成测试是 Dubbo 的质量保证体系中重要的一环,Dubbo 的每个版本都会对所有的 samples 进行回归验证,保证 Dubbo 的所有变更都不会影响 samples 的使用。
3. 启动一个简易的注册中心
从这一小节开始,将正式通过三个命令部署一个微服务应用。
从 背景 一节中可知,运行起 Dubbo 应用的一个大前提是部署一个注册中心,为了让本教程更易于上手,我们提供了一个基于 Apache Zookeeper 注册中心的简易启动器,如果您需要在生产环境部署注册中心,请参考生产环境初始化一文部署高可用的注册中心。
Windows:
./mvnw.cmd clean compile exec:java -pl tools