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
在这里插入图片描述

# 编译
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  

在这里插入图片描述

代码位置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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0ncNb2iI-1578200015945)(F:/2019/%E4%B9%A6/%E7%AC%94%E8%AE%B0%E6%95%B4%E7%90%862/rocketmq/idea%E8%B0%83%E8%AF%95rocketmq%E6%BA%90%E7%A0%81.assets/image-20191113161603998.png)]

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

启动broker

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-keDbDiZZ-1578200015946)(F:/2019/%E4%B9%A6/%E7%AC%94%E8%AE%B0%E6%95%B4%E7%90%862/rocketmq/idea%E8%B0%83%E8%AF%95rocketmq%E6%BA%90%E7%A0%81.assets/image-20191113161934004.png)]

也可以通过修改启动参数设置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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4q0fckkH-1578200015946)(F:/2019/%E4%B9%A6/%E7%AC%94%E8%AE%B0%E6%95%B4%E7%90%862/rocketmq/idea%E8%B0%83%E8%AF%95rocketmq%E6%BA%90%E7%A0%81.assets/image-20191113162243329.png)]

然后运行BrokerStartup#main启动broker

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ohWxpbgo-1578200015947)(F:/2019/%E4%B9%A6/%E7%AC%94%E8%AE%B0%E6%95%B4%E7%90%862/rocketmq/idea%E8%B0%83%E8%AF%95rocketmq%E6%BA%90%E7%A0%81.assets/image-20191113162341378.png)]控制台出现上图结果,启动成功

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

在这里插入图片描述

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

增加brokerIP1 = 127.0.0.1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MOBRa8ul-1578200015948)(F:/2019/%E4%B9%A6/%E7%AC%94%E8%AE%B0%E6%95%B4%E7%90%862/rocketmq/idea%E8%B0%83%E8%AF%95rocketmq%E6%BA%90%E7%A0%81.assets/image-20191113162710590.png)]

测试

启动Producer发消息,成功

如果出现No Topic Route Info 错误:

broker.conf 中增加配置

autoCreateTopicEnable = true
namesrvAddr = 127.0.0.1:9876
发布了241 篇原创文章 · 获赞 305 · 访问量 54万+

猜你喜欢

转载自blog.csdn.net/HarderXin/article/details/103842062
今日推荐