从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
# 编译
mvn -Prelease-all -DskipTests clean install -U
进入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
代码位置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
然后运行NamesrvStartup#main启动namesrv
控制台出现上图结果,启动成功
进入org.apache.rocketmq.broker.BrokerStartup,可以执行main方法,同样需要先配置rocketHome
在org.apache.rocketmq.broker.BrokerStartup#createBrokerController中修改源码,增加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
还需要配置程序参数
‐n 127.0.0.0:9876 -c D:\code\java_yuanma\rocketmq\distribution\conf\broker.conf
然后运行BrokerStartup#main启动broker
如果出现以下情况,ip不对,是因为多网卡的问题
这时需要修改D:\code\java_yuanma\rocketmq\distribution\conf\broker.conf 此配置文件
增加brokerIP1 = 127.0.0.1
启动Producer发消息,成功
如果出现No Topic Route Info 错误:
broker.conf 中增加配置
autoCreateTopicEnable = true
namesrvAddr = 127.0.0.1:9876