前言

你给面试官说:“我阅读过 Dubbo 的源码,觉得那块设计的比较好”。结果,你自己连Dubbo 源码阅读环境都没搭建过的话,尴尬不?

Dubbo官方也有对应的源码环境搭建教程(@源码构建),不过我的更详细完善一点。并且,更清晰易懂。一些你们可能我踩的坑,我都提前指了出来,避免没有必要的时间浪费。

环境准备

  • IDEA:建议使用 IDEA 作为 IDE。
  • Maven 3.6.5 :Dubbo 使用 maven 作为构建工具。
  • JDK 1.8 :JDK 1.8 版本即可。

Dubbo 源码阅读环境搭建

克隆项目到本地

我们先克隆项目到本地(建议 fork 一份项目到自己的仓库中再克隆,版本建议 dubbo-2.6.4)。

  1. git clone https://github.com/apache/dubbo.git dubbo

使用 IDEA 打开项目

项目克隆完成之后,推荐使用 IDEA 打开。打开之后,可能需要一会时间下载项目所依赖的 jar包,我们喝杯咖啡,耐心等待即可。

下载jar包的过程中,很可能会遇到某些 jar 包出现问题的情况,导致项目多处报红,显示相关依赖导入错误。解决的办法就是:你去自己本地的 Maven仓库找到对应的 jar 包,将其删除,然后重新导入项目下载即可。

构建项目

如果我们的项目相关的 jar 包下载完成,我们就可以开始构建项目了。你可以使用下面两种方式的任意一种:

(1)使用下面的命令构建项目了:

  1. mvn install -Dmaven.test.skip #构建并跳过单元测试

(2)不同过命令的方式:

首先点击跳过测试,然后点击clean 和 install。

「准备」Dubbo源码阅读环境搭建 - 图1

验证源码环境是否搭建成功

这些事情做完之后,我们需要验证一下 Dubbo 源码阅读环境是否真的搭建成功了。怎么来验证呢?

非常简单,不需要自己手动写 Demo 了。项目源码已经自带了一些使用 Dubbo 的Demo,我们直接运行即可。

我们找到 dubbo-demo 这个文件夹,里面包含了 3 种不同类型(xml、api、annotation)使用方式的 demo,可以帮助我们节省掉大量写 Demo 的时间。

「准备」Dubbo源码阅读环境搭建 - 图2

这些 Demo 都是使用 zookeepeer 作为注册中心的,所以我们还需要提前下载 zookeeper 到本地。

我这里建议下载 3.4.12 版本的 zookeeper ,避免出现其他问题。我们直接使用 Docker 进行下载就行了,方便简单。

  1. docker pull zookeeper:3.4.12

然后,使用下面的命令运行。

  1. 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 即可。

「准备」Dubbo源码阅读环境搭建 - 图3