Dubbo 是一个分布式服务框架,致力于提供高性能、透明化的 RPC 远程服务调用方案以及服务治理方案,以帮助我们解决微服务架构落地时的问题。
Dubbo 是由阿里开源,后来加入了 Apache 基金会,目前已经从孵化器毕业,成为 Apache 的顶级项目。Apache Dubbo 目前已经有接近 32.8 K 的 Star、21.4 K 的 Fork,其热度可见一斑, 很多互联网大厂(如阿里、滴滴、去哪儿网等)都是直接使用 Dubbo 作为其 RPC 框架,也有些大厂会基于 Dubbo 进行二次开发实现自己的 RPC 框架 ,如当当网的 DubboX。
千里之行,始于足下,阅读源码也是一样,需要先开始搭建源码阅读环境,本文教你从 0 开始搭建。
首先,需要下载源码,推荐从 gitee 网站上 clone,dubbo 的源码比较大,下载比较快
git clone git@gitee.com:mirrors/dubbo.git
# 切换到 dubbo-2.7.7 分支,当然可以选择切换到最新分支
git checkout -b dubbo-2.7.7 dubbo-2.7.7
使用 mvn 命令编译,下载所需要的包
编译之前,加上 阿里云的仓库 mirror 到 settings.xml 文件中
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
使用 mvn 编译
mvn clean install -Dmaven.test.skip=true
执行下面的命令转换成 IDEA 项目
mvn idea:idea
开始导入到 IDEA 中,在导入之前,需要先调整 IDEA 的内存,默认是非常小的
打开安装目录的这个文件
可以看到默认内存还不足 1 个 G,经过测试,IDEA 编译和运行过程至少用到 3 个 G 以上,这里调成 4 个 G
然后打开这个文件
找到这个位置
打开这个文件
调整到 4 G ,即可
最后,可以打开 IDEA ,导入整个工程,中间 IDEA 会自动下载上面编译后,没导入的包
最后,执行 dubbo-demo 的工程即可启动
启动过程,可能会报一个类找不到,此时注释掉源码的 UserService 的一个类,即可。这是 测试类,不影响