我的環境 兩臺阿里雲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
轉自
rocketmq在linux搭建雙master遇到的坑 - 發瘋的man - 部落格園
https://www.cnblogs.com/coder-lzh/p/9678477.html