目标
从零上手开发基于 Dubbo 的微服务
难度
低
环境要求
系统:Windows、Linux、MacOS
JDK 8 及以上(推荐使用 JDK17)
Git
IntelliJ IDEA(可选)
Docker (可选)
动手实践
本章将通过手把手的教程一步一步教你如何从零开发一个微服务应用。
1. 启动注册中心
对于一个微服务化的应用来说,注册中心是不可或缺的一个组件。只有通过注册中心,消费端才可以成功发现服务端的地址信息,进而进行调用。
为了让本教程更易于上手,我们提供了一个基于 Apache Zookeeper 注册中心的简易启动器,如果您需要在生产环境部署注册中心,请参考生产环境初始化一文部署高可用的注册中心。
Windows:
git clone --depth=1 --branch master git@github.com:apache/dubbo-samples.git
cd dubbo-samples
./mvnw.cmd clean compile exec:java -pl tools/embedded-zookeeper
Linux / MacOS:
git clone --depth=1 --branch master git@github.com:apache/dubbo-samples.git
cd dubbo-samples
./mvnw clean compile exec:java -pl tools/embedded-zookeeper
Docker:
docker run --name some-zookeeper --restart always -d zookeeper
2. 初始化项目
从本小节开始,将基于 IntelliJ IDEA 进行工程的搭建以及测试。
如上图所示,可以建立一个基础的项目。
在初始化完项目之后,需要在 src/main/java
目录下创建 org.apache.dubbo.samples.api
、org.apache.dubbo.samples.client
和 org.apache.dubbo.samples.provider
三个 package。
后续我们将在 api
下创建对应的接口,在 client
下创建对应客户端订阅服务的功能,在 provider
下创建对应服务端的实现以及发布服务的功能。
上述三个 package 分别对应了应用共同依赖的 api、消费端应用的模块、服务端应用的模块。在实际部署中需要拆成三个工程,消费端和服务的共同依赖 api 模块。从简单出发,本教程将在同一个工程中进行开发,区分多个启动类。
3. 添加 Maven 依赖
在初始化完项目以后,我们需要先添加 Dubbo 相关的 maven 依赖。