Idea调试Rocketmq源码编译运行

Rocketmq源码编译运行

下载

从github下载源码,比较慢,也可以从gitee下载

源码目录结构

名称 作用
broker broker模块:c和p端消息存储逻辑
client 客户端api:produce、consumer端 接受与发送api
common 公共组件:常量、基类、数据结构
tools 运维tools:命令行工具模块
store 存储模块:消息、索引、commitlog存储
namesrv 服务管理模块:服务注册topic等信息存储
remoting 远程通讯模块:netty+fastjson
logappender 日志适配模块
example Demo列子
filtersrv 消息过滤器模块
srvutil 辅助模块
filter 过滤模块:消息过滤模块
distribution 部署、运维相关zip包中的代码
openmessaging 兼容openmessaging分布式消息模块

编译

解压导入idea ,修改配置文件pom.xml,jdk编译版本为1.8
Idea调试Rocketmq源码编译运行_第1张图片

# 编译
mvn -Prelease-all -DskipTests clean install -U

启动namesrv

进入org.apache.rocketmq.namesrv.NamesrvStartup,执行main方法

会抛出错误, 原因是没有设置配置ROCKETMQ_HOME文件路径

Please set the ROCKETMQ_HOME variable in your environment to match the lo
cation of the RocketMQ installation  

Idea调试Rocketmq源码编译运行_第2张图片

代码位置org.apache.rocketmq.namesrv.NamesrvStartup#createNamesrvController,可以修改源码,增加rocketHome的配置

也可以通过修改启动参数设置rocketHome, 在idea的run configurators中配置 VM参数为

-Drocketmq.home.dir=D:\code\java_yuanma\rocketmq\distribution

同时还需要设置user.home,指定日志文件路径

-Duser.home=D:\code\java_yuanma\rocketmq\user.home

还需要配置namesrv的ip和port

Idea调试Rocketmq源码编译运行_第3张图片

然后运行NamesrvStartup#main启动namesrv

Idea调试Rocketmq源码编译运行_第4张图片

控制台出现上图结果,启动成功

启动broker

进入org.apache.rocketmq.broker.BrokerStartup,可以执行main方法,同样需要先配置rocketHome

在org.apache.rocketmq.broker.BrokerStartup#createBrokerController中修改源码,增加rocketHome的配置

Idea调试Rocketmq源码编译运行_第5张图片

也可以通过修改启动参数设置rocketHome, 在idea的run configurators中配置 VM参数为

-Drocketmq.home.dir=D:\code\java_yuanma\rocketmq\distribution

同时还需要设置user.home,指定日志文件路径

-Duser.home=D:\code\java_yuanma\rocketmq\user.home

还需要配置程序参数

‐n 127.0.0.0:9876 -c D:\code\java_yuanma\rocketmq\distribution\conf\broker.conf

Idea调试Rocketmq源码编译运行_第6张图片

然后运行BrokerStartup#main启动broker

Idea调试Rocketmq源码编译运行_第7张图片控制台出现上图结果,启动成功

如果出现以下情况,ip不对,是因为多网卡的问题

Idea调试Rocketmq源码编译运行_第8张图片

这时需要修改D:\code\java_yuanma\rocketmq\distribution\conf\broker.conf 此配置文件

增加brokerIP1 = 127.0.0.1

Idea调试Rocketmq源码编译运行_第9张图片

测试

启动Producer发消息,成功

如果出现No Topic Route Info 错误:

broker.conf 中增加配置

autoCreateTopicEnable = true
namesrvAddr = 127.0.0.1:9876

你可能感兴趣的:(阿里巴巴,java)