您现在的位置是:首页 > 服务器服务器
使用Idea调试RocketMQ源码教程
2023-02-25 06:44:03服务器0人已围观
简介这篇文章主要为大家介绍了使用Idea调试RocketMQ源码教程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
目录
前言下载源码代码编译运行namesrv启动启动broker配置文件启动broker小结前言
为了更好地了解RocketMQ
,我打算看一看它的源码了。随着RocketMQ
5.0版本的发布,应该有更多小伙伴在实际应用中选择RocketMQ
。那么我们就从这一篇文章开始,逐步来了解RocketMQ
的神秘源码吧!接下来我们先把调试环境搭建好。
下载源码
源码地址:github.com/apache/rock…
我们先把RocketMQ
源码下载下来,为了方便一点,建议小伙伴先fork到自己的仓库,然后再通过git拉下来。
导入idea
我们通过idea把下载的源码导入:
有任何报红或者错误先不用管。
代码编译
不要直接打开namesrv
找到main
函数就运行,这样是跑不起来的,会产生以下错误:
我们找到源码所在的本地目录,或者直接在项目中打开Terminal
:
首先执行java -version
检查安装的java版本,建议该版本不能超过java 11,测试下来java 17是编译不了的。
如果版本没问题的话,执行mvn clean install -DskipTests
编译该项目。
编译成功后,结果如下:
运行namesrv
设置ROCKETMQ_HOME
在启动namesrv
之前,我们要先设置以下对应的环境变量ROCKETMQ_HOME
,这个变量可以直接在启动配置里面设置。namesrv
在启动的时候就会去ROCKETMQ_HOME/conf
里面去找相应的配置,比如logback_namesrv.xml
。
logback_namesrv.xml
我们拉下来的项目中已经有现成的logback_namesrv.xml
,所以我们只需要拷贝一下。从distribution/conf
里面就可以找到logback_namesrv.xml
,直接拷贝到我们指定的ROCKETMQ_HOME/conf
路径中。启动
直接在idea中点击run
或者debug
启动namesrv
服务。
启动broker
设置环境变量ROCKETMQ_HOME
和配置文件
同样的我们需要设置环境变量ROCKETMQ_HOME
,目的和namesrv
一样,是为了读取日志配置文件;另一个-c xx/xx/broker.conf
是为了指定服务的配置文件。
配置文件
我们的broker启动需要两个配置文件,一个是日志配置文件logback_broker.xml
,一个是broker.conf
配置。这两个配置文件我们都可以从项目中的distribution/conf
中找到,我们把找到的两个文件放到指定的路径下。broker.conf
文件需要做一些简单的修改:
brokerClusterName = DefaultClusterbrokerName = broker-abrokerId = 0deleteWhen = 04fileReservedTime = 48brokerRole = ASYNC_MASTERflushDiskType = ASYNC_FLUSH# namesrv服务地址namesrvAddr = 127.0.0.1:9876# 运行自动创建topic,避免调试的时候麻烦autoCreateTopicEnable = true# 数据存储路径storePathRootDir = /Users/zouwei/Documents/projects/github_project/rocketmq/data_store# commitlog存储文件storePathCommitLog = /Users/zouwei/Documents/projects/github_project/rocketmq/data_store/commitlog# 消费队列存储文件storePathConsumeQueue = /Users/zouwei/Documents/projects/github_project/rocketmq/data_store/consumequeue# 索引存储文件storePathIndex = /Users/zouwei/Documents/projects/github_project/rocketmq/data_store/index# checkpoint存储文件storeCheckpoint = /Users/zouwei/Documents/projects/github_project/rocketmq/data_store/checkpoint# abort文件abortFile = /Users/zouwei/Documents/projects/github_project/rocketmq/data_store/abort
小伙伴们需要根据自己的实际情况来修改上述配置。
启动broker
接下里,我们就可以通过idea
来启动broker
了,点击run
或者debug
按钮,最后broker启动成功。
为了更好地看到启动效果和相关配置,小伙伴们可以适当修改一下logback_broker.xml
:
<logger name="RocketmqBroker" additivity="false"> <level value="INFO"/> <appender-ref ref="STDOUT"/> <appender-ref ref="RocketmqBrokerAppender"/> </logger>
在RocketmqBroker
里面加上<appender-ref ref="STDOUT"/>
,这样我们就可以在控制台中看到相关的日志了。
小结
至此,我们就完成了通过idea把RocketMQ
项目导入并运行起来的操作,里面确实有一些比较小的坑,大概总结一下:
1.代码拉下来后不能直接运行,需要通过mvn clean install -DskipTests
编译后才能运行,否则报错;
2.在编译前需要检查java版本,不能是过高的版本,比如java 17;
3.编译完成后,需要在启动配置中指定相关的环境变量ROCKETMQ_HOME
,该变量是为了namesrv
和broker
服务找到日志配置文件;broker
服务还要指定broker.conf
配置文件;
4.broker
服务最好配置一下autoCreateTopicEnable = true
,避免后续调试的时候不方便;
5.所有的配置文件在拉下来的代码中都可以找到,相关路径为distribution/conf
;
6.把日志输出到控制台可以更好地了解服务启动的状态;
以上就是使用Idea调试RocketMQ源码教程的详细内容,更多关于Idea调试RocketMQ源码的资料请关注技术员网其它相关文章!
Tags: Idea调试RocketMQ源码 Idea调试RocketMQ
很赞哦! ()
上一篇:网站压力测试工具-ab工具apache bench使用过程
下一篇:返回列表
相关文章
随机图文
zabbix监控4.4升级至5.0的详细教程
这篇文章主要介绍了zabbix监控4.4升级至5.0的详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下一文解析Apache Avro数据
本文是avro解析的demo,当前FlinkSQL仅适用于简单的avro数据解析,复杂嵌套avro数据暂时不支持。本文主要解析Apache Avro数据的相关内容,感兴趣的朋友一起看看吧Linux下使用pure-ftpd建立匿名ftp访问的方法
这篇文章主要介绍了Linux下使用pure-ftpd建立匿名ftp访问的方法,需要的朋友可以参考下Tomcat多实例部署及配置原理
这篇文章主要介绍了Tomcat多实例部署及配置过程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
留言与评论 (共有 条评论) |