这是我参与8月更文挑战的第1天,活动详情查看:8月更文挑战
0 准备工作
使用到的工具。
- Git
- IDEA(本文基于 2020.1 版本)
- Maven
- ZooKeeper
1 下载源码
我们打开 Dubbo 托管在 GitHub 的网址 https://github.com/apache/dubbo,复制 Clone 链接。
1.1 准备源码
将其克隆到本地磁盘上。
众所周知,源码学习的第一手资料自然是官方文档。我们注意到目前 2.x 版本的官方文档中使用的是 dubbo-2.6.4。
关于 Dubbo 的版本,当前社区维护的 Dubbo Java 大版本主要有 3 个,分别是 2.5.x、2.6.x 、2.7.x 和 3.0。
- 3.0 最新一代 Dubbo,目前仍在研发中。
- 2.7.x 是社区的主要开发版本,专注于特性或功能升级。
- 2.6.x 版本则定位为 bugfix 版本,主要以修复问题和安 全漏洞为主。
- 2.5.x 版本从 2019 年初开始已宣布 EOF,停止了维护。
故我们利用 git checkout dubbo-2.6.4 命令,切换到 dubbo-2.6.4 版本。
1.2 导入 IDEA
打开 IDEA,选择 Open or Import,然后选择刚刚克隆下来的 Dubbo 源码路径。
2020.1 版本的 IDEA 会自动查找到 pom.xml 文件,并作为 Maven 工程导入。如果之前配置过 Maven,此时 IDEA 应该会自动下载依赖。
当所有依赖都下载完成后,我们的源码环境基本就搭建好了,搭建好的源码工程如下图所示。
2 示例代码
在 Dubbo 源码的 dubbo-demo 模块中,提供了示例代码。
DemoService:服务接口Consumer:消费者Provider:提供者DemoServiceImpl:服务接口实现类
2.1 修改配置
1 修改 Consumer 配置
注册中心这里使用的是本地的 ZooKeeper,故将注册中心地址修改为 zookeeper://localhost:2181。
2 修改 Provider 配置
对于 Provider,我们同样修改注册中心配置。
2.2 运行测试
首先,我们需要启动我们的注册中心 ZooKeeper。
然后,先运行 Provider 类。
接着,以同样方式运行 Consumer 执行远程调用。运行成功后,就可以看到远程调用的结果被打印在控制台。
至此,Dubbo 源码环境搭建完成!🎉🎉