lock failed, MQ already started 问题处理

前言

刚接触 RocketMQ 而且是在 WIN10 平台上使用, 有太多东西都忘了怎么使用, 现在记录一下这些东西



检查几个问题

启动 mqbroker 的方式

  • 直接启动
$mqpath> binmqbroker.cmd confyou_special_config.properties
  • 使用 start 命令
$mqpath> binmqbroker.cmd confyou_special_config.properties

两种启动方式没有本质区别, 但使用 start 命令, 会为程序重开一个cmd页面, 比较方便

是否使用操作项: -c

$mqpath> binmqbroker.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 binmqbroker.cmd -c confmy-2m2s-syncroker-b.properties

$mqpath> start binmqbroker.cmd -c confmy-2m2s-syncroker-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模式配置

原文地址:https://www.cnblogs.com/vitoboy/p/15309087.html