【RocketMQ源码学习】之broker启动一直报错。报错一直提示退出code为-3解决办法。
下载rocketmq源码后,配置好broker.conf文件,启动broker时候报错:
错误code为-3.
先来看看凯哥的broker.conf配置文件信息:
brokerClusterName = DefaultClusterbrokerName = broker-abrokerId = 0# namesrvAddr地址namesrvAddr=127.0.0.1:9876deleteWhen = 04fileReservedTime = 48brokerRole = ASYNC_MASTERflushDiskType = ASYNC_FLUSHautoCreateTopicEnable=true# 存储路径storePathRootDir=E:/data/rocketmqdata/dataDir# commitLog路径storePathCommitLog=E:/data/rocketmqdata/dataDir/commitlog# 消息队列存储路径storePathConsumeQueue=E:/data/rocketmqdata/dataDir/consumequeue# 消息索引存储路径storePathIndex=E:/data/rocketmqdata/dataDir/index# checkpoint文件路径storeCheckpoint=E:/data/rocketmqdata/dataDir/checkpoint# abort文件存储路径abortFile=E:/data/rocketmqdata/dataDir/abort
写的很清楚啊。指定了存储目录。
那么哪了错误了呢?根据源码添加日志及断点:
我们可以看到异常信息为:
java.io.FileNotFoundException: E:\data\rocketmqdata\dataDir\checkpoint (拒绝访问。)
打开指定目录:
我们可以看到checpoint这东西是个目录!!!目录!!!!目录啊!!!
这是凯哥手欠,创建的。
我们把配置的存储目录相关的都注释掉,走默认的启动成。存储的根目录如下:
。我们在来看看,启动默认的存储目录都有什么?
只有三个目录。所以,手别欠欠的看到配置就创建目录。
修改方法:只创建broker.conf中配置的
=E:/data/rocketmqdata/dataDir
这个目录既可以了。其他的不用创建。代码会自动创建的。