RocketMQ源码分析【一】idea RocketMQ源码分析本地环境搭建调试

分手后的思念是犯贱 2022-09-12 03:57 369阅读 0赞

文章目录

    • Fork RocketMQ源码到本地仓库
    • idea拉取自己仓库RocketMQ源码
    • 启动NameServer
    • 启动 Broker
    • 启动`Producer`生产消息
    • 启动`Consumer` 消费者
    • 总结

Fork RocketMQ源码到本地仓库

RocketMQ源码地址:https://github.com/apache/rocketmq
首先我们将RocketMQ的源码fork到我们自己仓库,因为我们可能会对RocketMQ源码作一些改变,然后需要提交到我们自己仓库中,比如添加注释,但是我们不能直接推到RocketMQ官方仓库,所以先fork一份到我们自己本地仓库
在这里插入图片描述
fork完就发现我们本地仓库有一份rocketmq源码了
在这里插入图片描述

idea拉取自己仓库RocketMQ源码

直接在本地仓库复制git地址
在这里插入图片描述

然后在idea中拉取
在这里插入图片描述

这里可能会clone比较久,我们耐心等待下。下载完后整体源码结构如下:
在这里插入图片描述

我们对源码的一些模块作一些简单说明吧
在这里插入图片描述

启动NameServer

NameServer 的启动类入口在NamesrvStartup
在这里插入图片描述

如果直接启动我们会报错
在这里插入图片描述
提示我们要配置RocketMQ环境变量

我们在RocketMQ源码路径外随便建立一个文件夹(我这里名字就叫rocketmq-nameserver),
然后在其中新建三个文件夹
在这里插入图片描述

将源码中的这两个配置文件复制放入conf文件夹中
在这里插入图片描述
在这里插入图片描述

然后在启动类NamesrvStartup启动参数中配置ROCKETMQ_HOME

ROCKETMQ_HOME=/Users/weihubeats/Desktop/sofe/rocketmq-nameserver

其中 = 后面就是你刚才创建的文件路径

在这里插入图片描述

然后就可以启动成功了
在这里插入图片描述

启动 Broker

Broker启动和NameServer类似
启动入口是 BrokerStartup.class
在这里插入图片描述
也是在启动类中配置环境变量。我们还是使用上面的环境变量即可,然后在配置文件中复制logback_broker.xml到我们的本地环境变量中

在这里插入图片描述

在这里插入图片描述
然后启动Broker
在这里插入图片描述
这里就显示Broker启动成功了

但是没看到 name server地址,有点奇怪,跟源码看了一下
在这里插入图片描述
都是从系统参数中获取,那么我们在启动参数中再加一个namesrvAddr地址,同时为了方便测试我们添加自动创建topic参数,所以启动参数就变成了
ROCKETMQ_HOME=/Users/weihubeats/Desktop/sofe/rocketmq-nameserver;NAMESRV_ADDR=127.0.0.1:9876;autoCreateTopicEnable=true

启动Producer生产消息

我们直接运行rocketmq给我提供的测试类Producer,其中要添加一行代码

  1. producer.setNamesrvAddr("127.0.0.1:9876");

然后启动发送消息

在这里插入图片描述

在这里插入图片描述
可以看到发送消息是成功了的

启动Consumer 消费者

同上面Producer类似
Consumer 添加如下代码

  1. consumer.setNamesrvAddr("127.0.0.1:9876");

我们接着启动Consumer
在这里插入图片描述
至此RocketMQ源码调试环境搭建完成

总结

总的来说还是比较多的坑的,其从我就因为配置了两个jdk版本,比如jdk8个jdk11,期间换了一次jdk版本broker就启动不成功了,具体解决方案参考这里:
https://blog.csdn.net/niwo\_345/article/details/113099629

总得来说源码调试并不是那么容易,还是要自己多动手

发表评论

表情:
评论列表 (有 0 条评论,369人围观)

还没有评论,来说两句吧...

相关阅读

    相关 调试RocketMQ

    1. 拷贝`namesrv`、`broker`的配置文件到指定目录,为了避免直接修改代码中的配置文件。 1.1 在F盘创建`rocketmq`文件夹,创建三个子文