二、 深入示例源码
1. 项目结构介绍
在本任务中,将分为3个子模块进行独立开发,模拟生产环境下的部署架构。
如上所示,共有3个模块,其中interface模块被consumer和provider两个模块共同依赖,存储RPC通信使用的API接口。
. // apache/dubbo-samples/1-basic/dubbo-samples-spring-boot ├── dubbo-samples-spring-boot-interface // 共享 API 模块 │ ├── pom.xml │ └── src │ └── main │ └── java │ └── org │ └── apache │ └── dubbo │ └── springboot │ └── demo │ └── DemoService.java // API 接口 ├── dubbo-samples-spring-boot-consumer // 消费端模块 │ ├── pom.xml │ └── src │ ├── main │ │ ├── java │ │ │ └── org │ │ │ └── apache │ │ │ └── dubbo │ │ │ └── springboot │ │ │ └── demo │ │ │ └── consumer │ │ │ ├── ConsumerApplication.java // 消费端启动类 │ │ │ └── Task.java // 消费端模拟调用任务 │ │ └── resources │ │ └── application.yml // Spring Boot 配置文件 ├── dubbo-samples-spring-boot-provider // 服务端模块 │ ├── pom.xml │ └── src │ └── main │ ├── java │ │ └── org │ │ └── apache │ │ └── dubbo │ │ └── springboot │ │ └── demo │ │ └── provider │ │ ├── DemoServiceImpl.java // 服务端实现类 │ │ └── ProviderApplication.java // 服务端启动类 │ └── resources │ └── application.yml // Spring Boot 配置文件 └── pom.xml
如上为本教程接下来会使用到的项目的文件结构。
2. 快速部署(基于Samples直接启动)
本章将通过几个简单的命令,一步一步教你如何部署并运行一个基于Dubbo x Spring Boot的用例。
注:本章部署的代码细节可以在apache/dubbo-samples这个仓库中1-basic/dubbo-samples-spring-boot中找到,在下一章中也将展开进行讲解。
1) 获取测试工程
在开始整个教程之前,我们需要先获取测试工程的代码。Dubbo的所有测试用例代码都存储在apache/dubbo-samples这个仓库中,以下这个命令可以帮你获取Samples仓库的所有代码。
2) 启动一个简易的注册中心
对于一个微服务化的应用来说,注册中心是不可或缺的一个组件。只有通过注册中心,消费端才可以成功发现服务端的地址信息,进而进行调用。
为了让本教程更易于上手,我们提供了一个基于Apache Zookeeper注册中心的简易启动器,如果您需要在生产环境部署注册中心,请参考生产环境初始化一文部署高可用的注册中心。
3) 本地打包API模块
为了成功编译服务端、消费端模块,需要先在本地打包安装dubbo-samples-spring-boot-interface模块。
《Apache Dubbo微服务开发从入门到精通》——快速开始,一个 Dubbo Spring Boot 示例——二、 深入示例源码(2):https://developer.aliyun.com/article/1225215