linux下启动第二个RocketMQ,报错java.lang.RuntimeException: Lock failed,MQ already started..... 解决方案
报错如下图:

这种情况下启动两个broker, 基本都会在第二个broker, 报lock failed, MQ already started
因为使用了相同的默认配置(只启动一个broker不受影响)
不同的配置, 需求满足最基本的配置不同
brokerName 不同
brokerId 不同
listenPort 不同
storePathRootDir 不同
相同的配置 ◦与 不带操作项 的情况类似, 会导致 lock failed, MQ already started
解决办法:
RocketMq修改namesrv和broker默认端口
1、修改namesrv默认端口(默认9876)
在rocket的conf目录下添加namesrv.properties文件,文件中添加端口配置
listenPort=8876
2、修改broker默认端口(默认10911)
在rocket的conf目录下修改broker.conf文件,配置修改如下
brokerClusterName = DefaultCluster1
brokerName = broker-b
brokerId = 1
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER1
flushDiskType = ASYNC_FLUSH1
# 新增的配置,broker默认端口
namesrvAddr=192.167.6.73:8876
brokerIP1=192.167.6.73
listenPort=8911
storePathRootDir=/opt/xxx/xxx
3、使用配置信息后台启动,先启动 NameServer 再启动Broker
使用配置信息后台启动namesrv nohup sh bin/mqnamesrv -c conf/namesrv.properties > /logs/mqname.log 2>&1& 使用配置信息后台启动broker nohup sh bin/mqbroker -n localhost:8876 -c conf/broker.conf > /logs/mqbroker.log 2>&1&
4、使用命令jps或日志查看是否正常启动

本文来自博客园,作者:攻城狮-tester,转载请注明原文链接:https://www.cnblogs.com/zcjbky/p/18661299

浙公网安备 33010602011771号