Lock failed,MQ already started解決方案

最近搭建mq集羣環境,每次都是master成功,slave失敗,一味地在網上查詢資料,有時候並沒有很好的解決,今天就來總結下解決方案。

1.定位問題

一開始總是嘗試改改這裏的配置,改改那裏的配置,最終還是沒啓動,並沒有去看nohup.out日誌裏報的什麼錯!

像我們啓動slave的時候,肯定會由nohup.out日誌輸出文件,就打開裏面看看報的啥錯,不就可以有針對性的解決了嘛!

2.錯誤提示

(1)Lock failed,MQ already started 

這種就是有可能是你所創建的消息存儲路徑mq-store少了從slave的目錄

(2)Address alreday bind in use 

這種就是你的配置裏面有使用重複的端口了,檢查broker-a和broker-b-s的配置,看是否有重複端口。

3.兩主兩從可用配置

採用兩臺機器,broker-a和broker-b-s在第一臺;  broker-b和broker-a-s在第二臺

(1)broker-a配置如下

#所屬集羣名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此處不同的配置文件填寫的不一樣,
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分號分割
namesrvAddr=mq-nameserver1:9876;mq-nameserver2:9876
#在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數
defaultTopicQueueNums=4
#是否允許 Broker 自動創建Topic,建議線下開啓,線上關閉
autoCreateTopicEnable=false
#是否允許 Broker 自動創建訂閱組,建議線下開啓,線上關閉
autoCreateSubscriptionGroup=false
#Broker 對外服務的監聽端口
listenPort=10911
haListenPort=10912
#刪除文件時間點,默認凌晨 4點
deleteWhen=04
#文件保留時間,默認 48 小時
fileReservedTime=120
#commitLog每個文件的大小默認1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#存儲路徑
storePathRootDir=/rocketmq/store
#commitLog 存儲路徑
storePathCommitLog=/rocketmq/store/commitlog
#消費隊列存儲路徑存儲路徑
storePathConsumeQueue=/rocketmq/store/consumequeue
#消息索引存儲路徑
storePathIndex=/rocketmq/store/index
#checkpoint 文件存儲路徑
storeCheckpoint=/rocketmq/store/checkpoint
#abort 文件存儲路徑
abortFile=/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536

#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 異步複製Master
#- SYNC_MASTER 同步雙寫Master
#- SLAVE
brokerRole=SYNC_MASTER

#刷盤方式
#- ASYNC_FLUSH 異步刷盤
#- SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#發消息線程池數量
#sendMessageThreadPoolNums=128
#拉消息線程池數量 
#pullMessageThreadPoolNums=128
##強制指定本機IP,需要根據每臺機器進行修改。官方介紹可爲空,系統默認自動識別,但多網卡時IP地址可能讀取錯誤
brokerIP1=10.125.15.124

(2)broker-b-s配置

#所屬集羣名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此處不同的配置文件填寫的不一樣,
brokerName=broker-b-s
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分號分割
namesrvAddr=mq-nameserver1:9876;mq-nameserver2:9876
#在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數
defaultTopicQueueNums=4
#是否允許 Broker 自動創建Topic,建議線下開啓,線上關閉
autoCreateTopicEnable=false
#是否允許 Broker 自動創建訂閱組,建議線下開啓,線上關閉
autoCreateSubscriptionGroup=false
#Broker 對外服務的監聽端口
listenPort=10923
haListenPort=10924
#刪除文件時間點,默認凌晨 4點
deleteWhen=04
#文件保留時間,默認 48 小時
fileReservedTime=120
#commitLog每個文件的大小默認1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#存儲路徑
storePathRootDir=/rocketmq/store-s
#commitLog 存儲路徑
storePathCommitLog=/rocketmq/store-s/commitlog
#消費隊列存儲路徑存儲路徑
storePathConsumeQueue=/rocketmq/store-s/consumequeue
#消息索引存儲路徑
storePathIndex=/rocketmq/store-s/index
#checkpoint 文件存儲路徑
storeCheckpoint=/rocketmq/store-s/checkpoint
#abort 文件存儲路徑
abortFile=/rocketmq/store-s/abort
#限制的消息大小
maxMessageSize=65536

#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 異步複製Master
#- SYNC_MASTER 同步雙寫Master
#- SLAVE
brokerRole=SLAVE

#刷盤方式
#- ASYNC_FLUSH 異步刷盤
#- SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#發消息線程池數量
#sendMessageThreadPoolNums=128
#拉消息線程池數量 
#pullMessageThreadPoolNums=128
##強制指定本機IP,需要根據每臺機器進行修改。官方介紹可爲空,系統默認自動識別,但多網卡時IP地址可能讀取錯誤
brokerIP1=10.125.15.124

(3)broker-b配置

#所屬集羣名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此處不同的配置文件填寫的不一樣,
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分號分割
namesrvAddr=mq-nameserver1:9876;mq-nameserver2:9876
#在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數
defaultTopicQueueNums=4
#是否允許 Broker 自動創建Topic,建議線下開啓,線上關閉
autoCreateTopicEnable=false
#是否允許 Broker 自動創建訂閱組,建議線下開啓,線上關閉
autoCreateSubscriptionGroup=false
#Broker 對外服務的監聽端口
listenPort=10911
haListenPort=10912
#刪除文件時間點,默認凌晨 4點
deleteWhen=04
#文件保留時間,默認 48 小時
fileReservedTime=120
#commitLog每個文件的大小默認1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#存儲路徑
storePathRootDir=/rocketmq/store
#commitLog 存儲路徑
storePathCommitLog=/rocketmq/store/commitlog
#消費隊列存儲路徑存儲路徑
storePathConsumeQueue=/rocketmq/store/consumequeue
#消息索引存儲路徑
storePathIndex=/rocketmq/store/index
#checkpoint 文件存儲路徑
storeCheckpoint=/rocketmq/store/checkpoint
#abort 文件存儲路徑
abortFile=/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536

#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 異步複製Master
#- SYNC_MASTER 同步雙寫Master
#- SLAVE
brokerRole=SYNC_MASTER

#刷盤方式
#- ASYNC_FLUSH 異步刷盤
#- SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#發消息線程池數量
#sendMessageThreadPoolNums=128
#拉消息線程池數量 
#pullMessageThreadPoolNums=128
##強制指定本機IP,需要根據每臺機器進行修改。官方介紹可爲空,系統默認自動識別,但多網卡時IP地址可能讀取錯誤
brokerIP1=10.125.15.125

(4)broker-a-s配置

#所屬集羣名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此處不同的配置文件填寫的不一樣,
brokerName=broker-a-s
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分號分割
namesrvAddr=mq-nameserver1:9876;mq-nameserver2:9876
#在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數
defaultTopicQueueNums=4
#是否允許 Broker 自動創建Topic,建議線下開啓,線上關閉
autoCreateTopicEnable=false
#是否允許 Broker 自動創建訂閱組,建議線下開啓,線上關閉
autoCreateSubscriptionGroup=false
#Broker 對外服務的監聽端口
listenPort=10923
haListenPort=10924
#刪除文件時間點,默認凌晨 4點
deleteWhen=04
#文件保留時間,默認 48 小時
fileReservedTime=120
#commitLog每個文件的大小默認1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#存儲路徑
storePathRootDir=/rocketmq/store-s
#commitLog 存儲路徑
storePathCommitLog=/rocketmq/store-s/commitlog
#消費隊列存儲路徑存儲路徑
storePathConsumeQueue=/rocketmq/store-s/consumequeue
#消息索引存儲路徑
storePathIndex=/rocketmq/store-s/index
#checkpoint 文件存儲路徑
storeCheckpoint=/rocketmq/store-s/checkpoint
#abort 文件存儲路徑
abortFile=/rocketmq/store-s/abort
#限制的消息大小
maxMessageSize=65536

#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 異步複製Master
#- SYNC_MASTER 同步雙寫Master
#- SLAVE
brokerRole=SLAVE

#刷盤方式
#- ASYNC_FLUSH 異步刷盤
#- SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#發消息線程池數量
#sendMessageThreadPoolNums=128
#拉消息線程池數量 
#pullMessageThreadPoolNums=128
##強制指定本機IP,需要根據每臺機器進行修改。官方介紹可爲空,系統默認自動識別,但多網卡時IP地址可能讀取錯誤
brokerIP1=10.125.15.125

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章