-
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
,其中要添加一行代码
producer.setNamesrvAddr("127.0.0.1:9876");
然后启动发送消息
可以看到发送消息是成功了的
启动Consumer
消费者
同上面Producer
类似Consumer
添加如下代码
consumer.setNamesrvAddr("127.0.0.1:9876");
我们接着启动Consumer
至此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