开发者学堂课程【RocketMQ 知识精讲与项目实战(第三阶段):源码结构介绍和导入】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/704/detail/12458
源码结构介绍和导入
rocketMQ的源码分析。首先进入github里面rocketMQ官方分库先把源码下载。打开github里面rocketMQ的官方仓库之后可以看到有很多子工厂。
如何下载?需要点击clone ordownload按钮,之后获得当前当前仓库的git地址。拿到仓库的地址之后,可以使用本地的git客户端然后下载。或者直接点击download ZIP可以将源码打成一个压缩包去下载下来。
进入资料的文件夹当中,点击rocketMQ的源码,其中rocketMQ-master这里面就是已经下载好的源码。下载好之后会发现里面有很多的子工厂,这些子工厂分别都是什么意思?
源码的目录结构如下图所示。
上图中的第一个broker文件夹里存放的是消息中间件服务端相关的功能。broker相关的代码都在这个文件中。
第二个客户端client,client顾名思义是客户端,里面存放着消息生产者和消息消费者公共的一些类都放在client。
Common是公共包,里面就是所有工厂的公共包都在这里面。
Dev这个项目内只有一个文件,存放了一些开发者的信息,里面没有任何的源代码。
Distribution存放着我们在进行rocketMQ部署的时候可能会遇到的一些配置文件,这里面会有一些说明,给出了示例的说明文件可以使用。
Example是示例的意思,提供了rocketMQ官方的一些代码,可以使用这个代码直接测试功能。
Filter与filtersrv这两个都是和消息过滤有关的
Logappender顾名思义这个是与log有关的
Namesrv与nameserver有关,后面会重点分析nameserver基本的实现过程。
Openmassage是与消息开放标准相关的一些源代码。
Remoting内放的是远程netty通讯相关的代码
Srcutil放的是服务的工具类
Store是存储的意思,放的是和消息存储有关的一些代码
Style做的是checkstyle相关的一些代码
Text存放的是一些公共的测试类
Tools是所有项目的工具类,例如监控命令的相关实现类都在这里面有些相关的代码。
以上就是源代码目录的结构以及每一个项目的意思。
想要分析源代码,需要将源代码导入ID与工具中。
导入的方式:点击open,将目录直接粘贴到输入框中再点击OK就可以。
需要分析调试这个源代码需要具备一些条件,
当前rocketMQ的源码基于JDK1.8+写的,所以本地 JDK的环境必须是1.8.以及需要安装maven。第二是查看源码的一些工具。需要将上述的环境准备好。
准备好之后将源码导入IDE当中,因为这个项目是基于Melen构建的,这里需要进行Melen的安装。
复制命令:clean install-dmaven.Test.Skip=true
先执行清理,再执行安装的一个过程。
将命令复制之后,点击标签卡。点击第六个按钮,出现下图:
将复制的命令粘贴到输入框中执行即可。
dmaven.Test.Skip=true意思是安装的时候跳过测试。可以执行一下。
要去调试源码首先需要做准备工作。先去把源码调试的环境JDK1.8 MAVEN Intellij IDEA准备好。然后去下载源码,下载完成之后,将源码导入到工具当中。然后去执行一下安装。
以上就是调试源码的准备工作。