單機(jī)部署參照:http://www.itdecent.cn/p/44961760cf36,本文將基于單機(jī)部署完善
主從模式選型
考慮我們公司對(duì)數(shù)據(jù)零丟失的硬性要求,選擇多Master多Slave模式(同步復(fù)制、異步刷盤)。
2主2從模式(同步復(fù)制)
- rocketmq安裝目錄:/usr/local/rocketmq-all-4.7.1-bin-release
- 默認(rèn)配置路徑:/usr/local/rocketmq-all-4.7.1-bin-release/conf/2m-2s-sync
- 配置文件說明(建議同一集群的主與從部署在不同的物理機(jī)上面):
- broker-a.properties:集群A的master配置
- broker-a-s.properties:集群A的slave配置
- broker-b.properties:集群B的master配置
- broker-b-s.properties:集群B的slave配置
- 每個(gè)配置文件中添加如下配置:
#線上關(guān)閉自動(dòng)創(chuàng)建topic autoCreateTopicEnable=false #開啟Slave讀權(quán)限(分擔(dān)master 壓力) slaveReadEnable=true #發(fā)送消息線程等待時(shí)間,默認(rèn)200ms waitTimeMillsInSendQueue=1000 # nameServer地址,分號(hào)分割 namesrvAddr=nameserverIP1:9876;namerserverIP2:9876 # 本機(jī)ip地址,默認(rèn)系統(tǒng)自動(dòng)識(shí)別,但是某些多網(wǎng)卡機(jī)器會(huì)存在識(shí)別錯(cuò)誤的情況,這種情況下可以人工配置。 brokerIP1=本機(jī)外網(wǎng)IP # 存在broker主從時(shí),在broker主節(jié)點(diǎn)上配置了brokerIP2的話,broker從節(jié)點(diǎn)會(huì)連接主節(jié)點(diǎn)配置的brokerIP2來同步 brokerIP2=本機(jī)內(nèi)網(wǎng)IP #開啟臨時(shí)存儲(chǔ)池 #transientStorePoolEnable=true #關(guān)閉堆內(nèi)存數(shù)據(jù)傳輸 #transferMsgByHeap=false #開啟文件預(yù)熱 #warmMapedFileEnable=true #發(fā)送消息的最大線程數(shù),默認(rèn)1 #sendMessageThreadPoolNums=16 #使用可重入鎖 #useReentrantLockWhenPutMessage=true #同一臺(tái)機(jī)器部署多個(gè)broker,端口號(hào)要不同,且端口號(hào)之間要相距大些 listenPort=10911 #存儲(chǔ)路徑 storePathRootDir=/data/rocket/app1/store storePathCommitLog=/data/rocket/app1/store/commitlog - 自定義日志輸出(如果不是同臺(tái)機(jī)器部署多個(gè)應(yīng)用,默認(rèn)日志輸出即可)
cd /usr/local/rocketmq-all-4.7.1-bin-release/conf # 替換日志輸出目錄(此處使用LogHomeRoot環(huán)境變量自定義目錄) sed -i "s/user\.home/LogHomeRoot/g" logback_broker.xml
啟動(dòng)與停止
- NameServer
cd /usr/local/rocketmq-all-4.7.1-bin-release # 啟動(dòng) nohup sh bin/mqnamesrv > ns.log 2>&1 & # 停止 ./bin/mqshutdown namesrv - Broker
cd /usr/local/rocketmq-all-4.7.1-bin-release # 啟動(dòng)(需設(shè)置日志環(huán)境變量,且需要同時(shí)執(zhí)行) LogHomeRoot=/data/rocket/app1 nohup sh bin/mqbroker -c conf/2m-2s-sync/xxx.properties > bk_app1.log 2>&1 & # 停止 ./bin/mqshutdown broker