lock failed, MQ already started 问题处理
前言
刚接触 RocketMQ
而且是在 WIN10
平台上使用, 有太多东西都忘了怎么使用, 现在记录一下这些东西
检查几个问题
启动 mqbroker
的方式
- 直接启动
$mqpath> bin\mqbroker.cmd conf\you_special_config.properties
- 使用
start
命令
$mqpath> bin\mqbroker.cmd conf\you_special_config.properties
两种启动方式没有本质区别, 但使用
start
命令, 会为程序重开一个cmd
页面, 比较方便
是否使用操作项: -c
$mqpath> bin\mqbroker.cmd -h
usage: mqbroker [-c <arg>] [-h] [-m] [-n <arg>] [-p]
-c,--configFile <arg> Broker config properties file
-h,--help Print help
-m,--printImportantConfig Print important config item
-n,--namesrvAddr <arg> Name server address list, eg: 192.168.0.1:9876;192.168.0.2:9876
-p,--printConfigItem Print all config item
"Broker starts OK"
- 带操作项
- 带操作项可以使用一些自定义的配置
- 一般使用集群里, 都需要带操作项, 使用自己的配置
- 不带操作项
- 不带操作项, 则使用默认配置的一些配置
- 这种情况下启动两个
broker
, 基本都会在第二个broker
, 报lock failed, MQ already started
- 因为使用了相同的默认配置(只启动一个
broker
不受影响)
是否使用不同的配置文件
- 不同的配置, 需求满足最基本的配置不同
brokerName
不同brokerId
不同listenPort
不同storePathRootDir
不同
- 相同的配置
- 与
不带操作项
的情况类似, 会导致lock failed, MQ already started
- 与
解决办法
- 使用
start
命令 - 使用操作项
-c
- 使用不同的配置文件
- 最终的启动命令为:
$mqpath> start bin\mqbroker.cmd -c conf\my-2m2s-sync\broker-b.properties
$mqpath> start bin\mqbroker.cmd -c conf\my-2m2s-sync\broker-a-s.properties
示例配置
主机: 192.168.0.123
上的两个 broker
的配置
- broker-a.properties (a节点主配置文件)
namesrvAddr=192.168.0.123:9876; 192.168.0.124:9876
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10911
storePathRootDir=D:/workfile/logs/rocketmqlogs/store-a
- broker-b-s.properties (b节点从配置文件)
namesrvAddr=192.168.0.123:9876; 192.168.0.124:9876
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
listenPort=11011
storePathRootDir=D:/workfile/logs/rocketmqlogs/store-b
主机: 192.168.0.124
上的两个 broker
的配置
- broker-b.properties (b节点主配置文件)
namesrvAddr=192.168.0.123:9876; 192.168.0.124:9876
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10911
storePathRootDir=D:/workfile/logs/rocketmqlogs/store-b
- broker-a-s.properties (a节点从配置文件)
namesrvAddr=192.168.0.123:9876; 192.168.0.124:9876
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
listenPort=11011
storePathRootDir=D:/workfile/logs/rocketmqlogs/store-a
参考来源
lock failed, MQ already started问题解决
window系统rocketMq--broker模式配置