前言

刚接触 ​​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模式配置​