rocketmq在linux搭建雙master遇到的坑


我的環境 兩台阿里雲centos7服務器

首先,去官網下載解壓包,解壓。

然后進入bin目錄,需要修改runserver.sh文件和runbroker.sh文件。因為rocketmq默認配置文件需要的內存是非常高的。需要改小點。

就是把那兩個文件的這個參數改得小點。改成512m就可以了

然后啟動Name Server

nohup sh bin/mqnamesrv &

然后啟動broker(有兩種方法,我使用的是第二種方法。)

我使用的是第二種方法,也是我親自成功的。第一種方法我是一直都不成功,很郁悶。困擾我一個星期。

第一種:

先去安裝的根目錄下執行這個命令,批量創建文件目錄。因為下面的配置文件會用到

mkdir -vp store/{commitlog/,consumequeue/,index/,checkpoint/,abort/}

啟動broker復雜一點,需要跟配置文件。因為這個配置文件中包含大量的參數,比如brokerName 、namesrvAddr、autoCreateTopicEnable、數據,日志,索引,存放目錄 等等。如果你不跟這個配置文件,那你啟動的時候就必須在后面一個一個追加參數。麻煩的一比

當然,默認這個配置文件里面的配置是很少的。你需要把原來的刪除掉 給我下面的配置信息給copy過去就ok。

nohup sh bin/mqbroker  ./conf/2m-noslave/broker-a.properties &

broker-a.properties

#所屬集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此處不同的配置文件填寫的不一樣
brokerName=broker-a|broker-b
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分號分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
# 在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數
defaultTopicQueueNums=4
# 是否允許 Broker 自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
# 是否允許 Broker 自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true
# Broker 對外服務的監聽端口
listenPort=10911
# 刪除文件時間點,默認凌晨 4點
deleteWhen=04
#文件保留時間,默認 48 小時
fileReservedTime=120
#commitLog每個文件的大小默認1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#存儲路徑
storePathRootDir= /usr/local/rocketmq/store
#commitLog 存儲路徑
storePathCommitLog= /usr/local/rocketmq/store /commitlog
#消費隊列存儲路徑存儲路徑
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
#消息索引存儲路徑
storePathIndex=/usr/local/rocketmq/store/index
#checkpoint 文件存儲路徑
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
#abort 文件存儲路徑
abortFile=/usr/local/rocketmq/store/abort
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 異步復制Master
#- SYNC_MASTER 同步雙寫Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盤方式
#- ASYNC_FLUSH 異步刷盤
#- SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#發消息線程池數量
#sendMessageThreadPoolNums=128
#拉消息線程池數量
#pullMessageThreadPoolNums=128

 第二種:

在根目錄執行這個命令

sh bin/mqbroker -m >broker.p

broker.p

打開這個文件 把我下面的全部復制上去去。替換到原來的

namesrvAddr=你的集群地址
brokerIP1=你的外網地址
brokerName=test-a
brokerClusterName=DefaultCluster
brokerId=0
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
rejectTransactionMessage=false
fetchNamesrvAddrByAddressServer=false
transactionTimeOut=3000
transactionCheckMax=5
transactionCheckInterval=60000
storePathRootDir=/root/store
storePathCommitLog=/root/store/commitlog
flushIntervalCommitLog=500
commitIntervalCommitLog=200
flushCommitLogTimed=false
deleteWhen=04
fileReservedTime=72
maxTransferBytesOnMessageInMemory=262144
maxTransferCountOnMessageInMemory=32
maxTransferBytesOnMessageInDisk=65536
maxTransferCountOnMessageInDisk=8
accessMessageInMemoryMaxRatio=40
messageIndexEnable=true
messageIndexSafe=false
haMasterAddress=
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
cleanFileForciblyEnable=true
transientStorePoolEnable=false

然后啟動  

nohup sh bin/mqbroker -c broker.p &

 

查看是否啟動成功  有 BrokerStartup 和  NamesrvStartup 則說明啟動成功

[root@iZ2zei0nwllapkwklisoncZ apache-rocketmq]# jps
3811 Jps3722 NamesrvStartup
3758 BrokerStartup

關閉

> sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK

> sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK

 

需要注意的是:需要在阿里雲上開啟三個端口

一個是9876端口  這個是nameServer的端口

一個是10909端口  這個是vip通道的端口

一個是10911端口  這個是broker的端口

 

坑巨多!!!慢慢發現吧

 

 

 

雙master雙slave的搭建也很簡單。配置文件修改三個參數

slave的brokerName和主的一樣。

brokerId要大於0

brokerRole這個值要變成SLAVE

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM