这是本人学习的总结,主要学习资料如下
- 马士兵教育
- rocketMq官方文档
目录
- 1、Overview
- 2、NameServer
- 2.1、源码启动NameServer
- 3、Broker启动过程
1、Overview
这篇文章的源码的版本是release-4.9.8
。在启动各个模块之前应该先对项目进行打包mvn install -Dmaven.test.skip=true
。
2、NameServer
2.1、源码启动NameServer
NameServer
的代码在namesrv
模块。相关启动类是namesrv/src/main/java/org/apache/rocketmq/namesrv/NamesrvStartup.java
。
在运行启动类之前需要设置一个ROCKETMQ_HOME
的环境变量。运行期间RocketMQ需要的配置文件或者产生的文件都会以ROCKETMQ_HOME
指定的路径作为根路径。
在ROCKETMQ_HOME
指定的目录下创建三个文件夹conf
,store
和logs
。
之后从在源代码的distribution
模块下复制borker.conf
,logback_broker.xml
和logback_namesrv.xml
到刚刚创建的conf
文件夹下。
之后运行启动类,这样就算是启动成功。
3、Broker启动过程
在刚刚复制的broker.conf
更改一些配置。主要是指定存储路径。以下是全部配置。
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
namesrvAddr=127.0.0.1:9876
autoCreateTopicEnable=true
storePathRootDir=/Users/fulanbin/rocketmq/store
#commitLog存储路径
storePathCommitPath=/Users/fulanbin/rocketmq/store/commitlog
#消息队列存储路径
storePathConsumeQueue=/Users/fulanbin/rocketmq/store/consumequeue
#消息索引存储路径
storePathindex=/Users/fulanbin/rocketmq/store/index
#checkpoint文件存储路径
storeCheckpoint=/Users/fulanbin/rocketmq/store/checkpoint
#abort文件存储路径
abortFile=/Users/fulanbin/rocketmq/store/abort
在broker
模块中找到broker/src/main/java/org/apache/rocketmq/broker/BrokerStartup.java
启动类,配置环境变量和启动参数。
Broker
启动成功。