哈喽,大家好,我是一条。
相信很多小伙伴都有阅读源码的需求,但是很多开源项目的源码环境搭建起来并不是很容易,所以我会陆续讲一些中间件的源码环境搭建,来帮助大家走好源码阅读的第一步。
首先大家需要明确一个点,阅读源码最好以debug的方式进行,通过栈调用信息可以很容易的弄懂整个流程,这也是我们想要把源码在本地跑起来的原因。
今天我们就来看一下RocketMQ的源码环境搭建。
我们可以从github拉取代码,也可以去官网下载。
导入idea,等待maven构建即可。这个时间可能会比较长,视网速而定。
目前最新稳定版是4.9.4,本文用的以前下载的4.3.0版本。
配置项目之前,我们先简单了解一下各个主要模块的作用,知其全貌。
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
autoCreateTopicEnable = true
namesrvAddr=127.0.0.1:9876
storePathRootDir=D:\libetter\advance\rocketmq-namesrv-run\store
storePathCommitLog=D:\libetter\advance\rocketmq-namesrv-run\store\commitlog
storePathConsumeQueue=D:\libetter\advance\rocketmq-namesrv-run\store\consumequeue
storePathIndex=D:\libetter\advance\rocketmq-namesrv-run\store\index
storeCheckpoint=D:\libetter\advance\rocketmq-namesrv-run\store\checkpoint
abortFile=D:\libetter\advance\rocketmq-namesrv-run\abort
同样配置环境变量
配置programer variables
-c D:\libetter\advance\rocketmq-namesrv-run\conf\broker.conf
下载代码:https://github.com/apache/rocketmq-dashboard
配置namesvr地址,启动
修改example中的quick start代码。
如此,我们就完成了源码环境搭建,后面就可以通过打断点的方式来研究 namesrv和broker的启动流程
、事务消息、延迟消息等底层原理了。
顺手点个赞吧!