RocketMQ源码分析【一】idea RocketMQ源码分析本地环境搭建调试
文章目录
- Fork RocketMQ源码到本地仓库
- idea拉取自己仓库RocketMQ源码
- 启动NameServer
- 启动 Broker
- 启动`Producer`生产消息
- 启动`Consumer` 消费者
- 总结
Fork RocketMQ源码到本地仓库
RocketMQ源码地址//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
总得来说源码调试并不是那么容易,还是要自己多动手
还没有评论,来说两句吧...