1 拉取代码
首先从 git 仓库中获取 rocketmq 源码,然后切换分支到 4.3
2 编译项目
在根目录下,将 pom 文件中的插件进行删除,分别是 maven-checkstyle-plugin
,maven-failsafe-plugin
,maven-gpg-plugin
这三个插件,接着执行 mvn clean install -Dmaven.test.skip=true
, 不删除插件,则执行这一步时,会报错。
3 添加配置文件
接着在 rocketmq 根目录创建conf 文件夹,用于后面的broker 启动配置。conf 中的文件来自 distribution/conf 下,选择 broker.conf
,logback_broker.xml
,logback_namesrv.xml
然后将它们复制到起初创建的 conf 文件夹下。并且 broker.conf
中添加如下代码:
# namesrvAddr地址
namesrvAddr=127.0.0.1:9876
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
autoCreateTopicEnable=true
autoCreateTopicEnable=true
# 存储路径
storePathRootDir=D:\\IDEA Project\\Rule\\rocketmq\\data\\rocketmq\\dataDir
# commitLog路径
storePathCommitLog=D:\\IDEA Project\\Rule\\rocketmq\\data\\rocketmq\\dataDir\\commitlog
# 消息队列存储路径
storePathConsumeQueue=D:\\IDEA Project\\Rule\\rocketmq\\data\\rocketmq\\dataDir\\consumequeue
# 消息索引存储路径
storePathIndex=D:\\IDEA Project\\Rule\\rocketmq\\data\\rocketmq\\dataDir\\index
# checkpoint文件路径
storeCheckpoint=D:\\IDEA Project\\Rule\\rocketmq\\data\\rocketmq\\dataDir\\checkpoint
# abort文件存储路径
abortFile=D:\\IDEA Project\\Rule\\rocketmq\\data\\rocketmq\\dataDir\\abort
最终效果如下:
4 启动项目
4.1 启动 namesrv
启动 NamesrvStartup
,并且添加环境变量 ROCKETMQ_HOME=D:\IDEA Project\Rule\rocketmq
,如下
运行成功的界面如下:
4.2 启动 broker
启动 BrokerStartup
,按照 namesrv 启动进行配置,然后再添加启动参数 -c D:\IDEA Project\Rule\rocketmq\conf\broker.conf
,
配置和运行成功界面如下,必须出现配置的 namesrv 地址,则表示成功,否则表示连接 namesrv 失败。
4.3 启动 consumer
启动 example
模块下 quickstart 包下的 Consumer
消费消息类。修改namesrv 的地址,
4.4 启动 producer
同样启动 example
模块下 quickstart 包下的 Producer
生产消息类,设置 namesrv 地址,随后启动则会发送消息,消息的 topic 为 TopicTest
。
4.5 消息消费
按照上面两步进行启动 rocketmq 的消息消费者和生产者,生产者则会发送消息,同时消费者则会接收到消息,结果如下。