序言
之前实习的时候曾阅读过一些RocketMQ(MetaQ)的源码,当时只是debug了客户端代码,没有debug服务端(如:broker)的代码。网上的教程大多是安装教程,前几天赋闲在校,在本机上搭建好了RocketMQ的源码调试环境,也踩了几个坑,下面分享一下:
环境(自己的笔记本,跟了我好几年了,性能快跟不上了)
OS:Win8.1
IDE:intelij idea
内存:6G
步骤
一、安装好jdk
RocketMQ pom里面的编译版本要求是1.6,所以1.6或以上即可。
jdk安装步骤这里省略。二、下载RocketMQ源码包
直接上官网下载最新的版本即可,git clone 或者 从网页上下载zip压缩包。
我这里下载的是最新的版本3.5.8
下载完将其解压即可。
- 三、设置RocketMQ HOME环境变量
因为我们是直接调试源码,从源码启动,所以不需要运行install.bat来编译源码,直接将环境变量设置为你解压后的目录,
比如我的目录:
设置一下ROCKETMQ_HOME的环境变量,因为logback的xml配置文件依赖这个环境变量,不设置就会报错。
- 四、idea 导入源码
用idea直接导入源码,选择maven项目格式即可,导入后记得配好maven的环境,我这里用的是阿里云的镜像地址,速度非常快:
觉得自己maven镜像速度慢的可以配一下阿里云的:
- 五、配置broker 和 nameserver的启动项
对于RocketMQ的服务端,主要是启动broker和nameserver两个模块,所以需要配置两个启动项。
点击 “Run->Edit Configuration”
首先配置一个 broker启动环境
配置好Main函数所在的类。
这里的关键在于VM OPTIONS,也就是虚拟机启动的参数,我们可以去看一看RocketMQ自带的启动参数是什么:
打开bin目录下的mqbroker文件,最下方有如下命令,可以看出broker主要是通过runbroker.sh这个脚本启动的:
再打开runbroker.sh,可以看到一些jvm参数配置:
可以将上面的参数复制到idea中的VM OPTIONS上,其中的堆内存大小配置需要根据自己本机的内存进行调整,否则会报错,我这里分的是1G。broker在启动的时候还需要配置一下main函数的启动参数,指定nameserver的地址和端口。
nameserver除了不用配置启动参数外,和broker配置基本一致,这里就不写了。
下面就是我配完的参数配置
六、开始调试
上面的准备工作都弄完了,现在可以开始调试了。
分别启动broker 和 nameserver,直接run 相应的配置即可。
先启动nameserver:
再启动broker:
这个时候就可以自己写客户端代码测试了,测试的时候可以给server代码打log或者直接debug都可以,客户端代码网上有很多我就不放了,本期节目到此结束。