【生產(chǎn)】部署RocketMQ

單機(jī)部署參照:http://www.itdecent.cn/p/44961760cf36,本文將基于單機(jī)部署完善

主從模式選型

參考:https://juejin.cn/post/6844903997095018509

考慮我們公司對(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
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容