手把手教学idea RocketMQ源码分析本地环境搭建调试


  • Fork RocketMQ源码到本地仓库

  • idea拉取自己仓库RocketMQ源码

  • 启动NameServer

  • 启动 Broker

  • 启动`Producer`生产消息

  • 启动`Consumer` 消费者

  • 总结


Fork RocketMQ源码到本地仓库

RocketMQ源码地址:https://github.com/apache/rocketmq 首先我们将RocketMQ的源码fork到我们自己仓库,因为我们可能会对RocketMQ源码作一些改变,然后需要提交到我们自己仓库中,比如添加注释,但是我们不能直接推到RocketMQ官方仓库,所以先fork一份到我们自己本地仓库手把手教学idea RocketMQ源码分析本地环境搭建调试fork完就发现我们本地仓库有一份rocketmq源码了手把手教学idea RocketMQ源码分析本地环境搭建调试

idea拉取自己仓库RocketMQ源码

直接在本地仓库复制git地址手把手教学idea RocketMQ源码分析本地环境搭建调试

然后在idea中拉取手把手教学idea RocketMQ源码分析本地环境搭建调试

这里可能会clone比较久,我们耐心等待下。下载完后整体源码结构如下:手把手教学idea RocketMQ源码分析本地环境搭建调试

我们对源码的一些模块作一些简单说明吧手把手教学idea RocketMQ源码分析本地环境搭建调试

启动NameServer

NameServer 的启动类入口在NamesrvStartup手把手教学idea RocketMQ源码分析本地环境搭建调试

如果直接启动我们会报错手把手教学idea RocketMQ源码分析本地环境搭建调试提示我们要配置RocketMQ环境变量

我们在RocketMQ源码路径外随便建立一个文件夹(我这里名字就叫rocketmq-nameserver), 然后在其中新建三个文件夹手把手教学idea RocketMQ源码分析本地环境搭建调试

将源码中的这两个配置文件复制放入conf文件夹中手把手教学idea RocketMQ源码分析本地环境搭建调试手把手教学idea RocketMQ源码分析本地环境搭建调试

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

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

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

手把手教学idea RocketMQ源码分析本地环境搭建调试
在这里插入图片描述

然后就可以启动成功了手把手教学idea RocketMQ源码分析本地环境搭建调试

启动 Broker

Broker启动和NameServer类似 启动入口是 BrokerStartup.class手把手教学idea RocketMQ源码分析本地环境搭建调试也是在启动类中配置环境变量。我们还是使用上面的环境变量即可,然后在配置文件中复制logback_broker.xml到我们的本地环境变量中

手把手教学idea RocketMQ源码分析本地环境搭建调试
在这里插入图片描述

手把手教学idea RocketMQ源码分析本地环境搭建调试然后启动Broker手把手教学idea RocketMQ源码分析本地环境搭建调试这里就显示Broker启动成功了

但是没看到 name server地址,有点奇怪,跟源码看了一下手把手教学idea RocketMQ源码分析本地环境搭建调试都是从系统参数中获取,那么我们在启动参数中再加一个namesrvAddr地址,同时为了方便测试我们添加自动创建topic参数,所以启动参数就变成了ROCKETMQ_HOME=/Users/weihubeats/Desktop/sofe/rocketmq-nameserver;NAMESRV_ADDR=127.0.0.1:9876;autoCreateTopicEnable=true

启动Producer生产消息

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

producer.setNamesrvAddr("127.0.0.1:9876");

然后启动发送消息

手把手教学idea RocketMQ源码分析本地环境搭建调试
在这里插入图片描述

手把手教学idea RocketMQ源码分析本地环境搭建调试可以看到发送消息是成功了的

启动Consumer 消费者

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

consumer.setNamesrvAddr("127.0.0.1:9876");

我们接着启动Consumer手把手教学idea RocketMQ源码分析本地环境搭建调试至此RocketMQ源码调试环境搭建完成

总结

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

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


原文始发于微信公众号(小奏技术):手把手教学idea RocketMQ源码分析本地环境搭建调试

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/30325.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!