
RocketMQ源码本地搭建调试指南
1 GitHub源码
导入IDEA,可在命令行执行mvn compile一下,保证源码能够正确编译。
2 启动Namesrv
到namesrv模块找到NamesrvStartup,启动main方法,报错如下:
需设置环境变量ROCKETMQ_HOME
。怎么设置呢?看看报错位置:
从namesrvConfig.getRocketmqHome中获取的ROCKETMQ_HOME,进一步发现是NamesrvConfig里面的一个属性
- 为方便,可直接在源码NamesrvStartup的main方法第一行
- 也可设置环境变量ROCKETMQ_HOME
- 或启动时加入命令行参数 -Drocketmq.home.dir=/path
再次启动Namesrv,报错如下:
提示在我们配置的ROCKETMQ_HOME 目录下,没找到conf\logback_namesrv.xml 配置文件。
在项目中搜索logback_namesrv.xml 文件,找到在distribution\conf 目录下存在很多配置,可直接使用这些配置文件。直接把distribution\conf 目录copy到配置的ROCKETMQ_HOME 目录下即可。 然后在来启动一下,控制台打印:
说明NameSrv启动成功
3 启动Broker
找到BrokerStartup,直接启动:
知道咋办了吧。
broker需要连接namrsrv,所以在
BrokerStartup
再启动:
虽然打印启动成功,再验证是否能成功发送和接收消息。
4 启动Producer
Producer的demo代码:
启动ProducerTest,控制台打印SEND_OK
,我们的producer发送消息也OK。
5 启动Consumer
上代码:
启动消费者,能够成功消费到消息,控制台打印hello rocketmq
。
6 总结
中间出一些问题,都能根据提示信息在源码中找到相应解决方案,多看源码,是成长捷径。
文章转载自公众号: JavaEdge
