克隆源码
mvn clean install
执行命令,跳过测试。我在执行测试的时候有时候卡住,所以干脆就跳过了。
mvn clean install -DskipTests
准备环境
在 D 盘创建 rocketmq 文件夹,里面新建 conf,logs,store 三个文件夹。将源码文件夹下 distribution/conf/broker.conf
,distribution/conf/logback_broker.xml
,distribution/conf/logback_namesrv.xml
复制到D:\rocketmq\conf 目录下。
修改 broker.conf ,配置如下
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 存储路径
storePathRootDir=D:\\rocketmq\\store
# commitLog 路径
storePathCommitLog=D:\\rocketmq\\store\\commitlog
# 消费队列存储路径
storePathConsumeQueue=D:\\rocketmq\\store\\consumequeue
# 消息索引存储路径
storePathIndex=D:\\rocketmq\\store\\index
# checkePoint 文件存储路径
storeCheckpoint=D:\\rocketmq\\store\\checkpoint
# abort 文件存储路径
abortFile=D:\\rocketmq\\store\\abort
启动 NameServer
找到 rocketmq\namesrv\NamesrvStartup.java,执行main函数即可。执行之前先修改一下配置文件,增加 Environment variables :ROCKETMQ_HOME=D:\rocketmq
启动成功之后打印:
The Name Server boot success. serializeType=JSON
启动 Broker
找到 rocketmq\broker\BrokerStartup.java,执行main函数即可。执行之前先修改一下配置文件,增加 Environment variables :ROCKETMQ_HOME=D:\rocketmq,还要修改 Program arguments,记住这里的 autoCreateTopicEnable=true
,否则在执行 example 程序的时候,会报无效的Topic 错误。
启动成功之后打印:
The broker[broker-a, 172.26.75.49:10911] boot success. serializeType=JSON and name server is localhost:9876
启动 Consumer
找到 example\quickstart\Consumer.java ,修改 nameserver 的地址。
consumer.setNamesrvAddr("127.0.0.1:9876");
启动之后打印:
10:42:12.985 [main] DEBUG i.n.u.i.l.InternalLoggerFactory - Using SLF4J as the default logging framework
Consumer Started.
启动 Producer
找到 example\quickstart\Producer.java ,修改 nameserver 的地址。
producer.setNamesrvAddr("127.0.0.1:9876");
至此,RocketMQ 本地调试环境就搭建完成了。
总结
1.启动 NameServer 和 Broker 要配置 ROCKETMQ_HOME 变量。
2.注意是否开启自动创建Topic的配置,如果没有开启,需要主动创建Topic。
3.配置文件的修改
接下来就去RocketMQ的源码中尽情冲浪吧~~