前言
你给面试官说:“我阅读过 Dubbo 的源码,觉得那块设计的比较好”。结果,你自己连Dubbo 源码阅读环境都没搭建过的话,尴尬不?
Dubbo官方也有对应的源码环境搭建教程(@源码构建),不过我的更详细完善一点。并且,更清晰易懂。一些你们可能我踩的坑,我都提前指了出来,避免没有必要的时间浪费。
环境准备
- IDEA:建议使用 IDEA 作为 IDE。
- Maven 3.6.5 :Dubbo 使用 maven 作为构建工具。
- JDK 1.8 :JDK 1.8 版本即可。
Dubbo 源码阅读环境搭建
克隆项目到本地
我们先克隆项目到本地(建议 fork 一份项目到自己的仓库中再克隆,版本建议 dubbo-2.6.4)。
git clone https://github.com/apache/dubbo.git dubbo
使用 IDEA 打开项目
项目克隆完成之后,推荐使用 IDEA 打开。打开之后,可能需要一会时间下载项目所依赖的 jar包,我们喝杯咖啡,耐心等待即可。
下载jar包的过程中,很可能会遇到某些 jar 包出现问题的情况,导致项目多处报红,显示相关依赖导入错误。解决的办法就是:你去自己本地的 Maven仓库找到对应的 jar 包,将其删除,然后重新导入项目下载即可。
构建项目
如果我们的项目相关的 jar 包下载完成,我们就可以开始构建项目了。你可以使用下面两种方式的任意一种:
(1)使用下面的命令构建项目了:
mvn install -Dmaven.test.skip #构建并跳过单元测试
(2)不同过命令的方式:
首先点击跳过测试,然后点击clean 和 install。
验证源码环境是否搭建成功
这些事情做完之后,我们需要验证一下 Dubbo 源码阅读环境是否真的搭建成功了。怎么来验证呢?
非常简单,不需要自己手动写 Demo 了。项目源码已经自带了一些使用 Dubbo 的Demo,我们直接运行即可。
我们找到 dubbo-demo
这个文件夹,里面包含了 3 种不同类型(xml、api、annotation)使用方式的 demo,可以帮助我们节省掉大量写 Demo 的时间。
这些 Demo 都是使用 zookeepeer 作为注册中心的,所以我们还需要提前下载 zookeeper 到本地。
我这里建议下载 3.4.12 版本的 zookeeper ,避免出现其他问题。我们直接使用 Docker 进行下载就行了,方便简单。
docker pull zookeeper:3.4.12
然后,使用下面的命令运行。
docker run -d --name zookeeper3.4.12 -p 2181:2181 zookeeper:3.4.12
我们随便找到一个 Demo ,我这里以 api 使用的方式来说明一下。
我们找到 dubbo-demo-api
这个文件夹,然后先启动服务提供者,再启动服务生产者:
- 启动服务提供者 :直接运行
dubbo-demo-api-provider
(服务提供者)下的Application
即可。服务提供者启动成功之后,控制台会打印出服务被注册的一些信息。 - 启动服务消费者 :直接运行
dubbo-demo-api-consumer
(服务提供者)下的Application
即可。服务消费者启动成功之后,控制台会打印出调用服务提供者的sayHello()
方法返回的结果。
启动过程中可能会出现的问题:java.nio.channels.UnresolvedAddressException
。
出现这种问题的原因大概是你的 JDK 版本是 JDK14,你只需要将 JDK 版本调整到对应的 JDK 8 即可。