CentOS7部署RocketMQ

準(zhǔn)備

  1. RocketMQ的zip包(本文準(zhǔn)備的版本是rocketmq-all-4.4.0-bin-release.zip)
  2. 通過(guò)xftp上傳到/opt/software下

部署流程

  1. 解壓
    unzip rocketmq-all-4.4.0-bin-release.zip -d /opt/modules

  2. 默認(rèn)文件夾名字太長(zhǎng),修改名字
    mv rocketmq-all-4.4.0-bin-release rocketmq

  3. 創(chuàng)建RocketMQ存儲(chǔ)文件的目錄
    cd /opt/modules/rocketmq/
    mkdir logs
    mkdir store
    cd store/
    mkdir commitlog
    mkdir consumequeue
    mkdir index
    文件夾說(shuō)明:

    • logs:存儲(chǔ)RocketMQ日志目錄
    • store:存儲(chǔ)RocketMQ數(shù)據(jù)文件目錄
    • commitlog:存儲(chǔ)RocketMQ消息信息
    • consumequeue、index:存儲(chǔ)消息的索引數(shù)據(jù)
  4. 配置文件修改
    conf目錄配置文件說(shuō)明:


    20200524235403403.png

    2m-2s-async:2主2從異步
    2m-2s-sync :2主2從同步
    2m-noslave :2主沒(méi)有從

    這里我配置單節(jié)點(diǎn),可以修改2m-2s-async的配置實(shí)現(xiàn)。進(jìn)入2m-2s-async目錄,修改第1個(gè)配置文件broker-a.properties
    cd 2m-2s-async/
    vim broker-a.properties

    #所屬集群名字
    brokerClusterName=rocketmq-cluster
    #broker名字,注意此處不同的配置文件填寫(xiě)的不一樣
    brokerName=broker-a
    #0 表示Master, > 0 表示slave
    brokerId=0
    #nameServer 地址,分號(hào)分割
    namesrvAddr=localhost:9876
    brokerIP1 = 服務(wù)器ip
    #在發(fā)送消息時(shí),自動(dòng)創(chuàng)建服務(wù)器不存在的Topic,默認(rèn)創(chuàng)建的隊(duì)列數(shù)
    defaultTopicQueueNums=4
    #是否允許Broker 自動(dòng)創(chuàng)建Topic,建議線下開(kāi)啟,線上關(guān)閉
    autoCreateTopicEnable=true
    #是否允許Broker自動(dòng)創(chuàng)建訂閱組,建議線下開(kāi)啟,線上關(guān)閉
    autoCreateSubscriptionGroup=true
    #Broker 對(duì)外服務(wù)的監(jiān)聽(tīng)端口
    listenPort=10911
    #刪除文件時(shí)間點(diǎn),默認(rèn)是凌晨4點(diǎn)
    deleteWhen=04
    #文件保留時(shí)間,默認(rèn)48小時(shí)
    fileReservedTime=48
    #commitLog每個(gè)文件的大小默認(rèn)1G
    mapedFileSizeCommitLog=1073741824
    #ConsumeQueue每個(gè)文件默認(rèn)存30W條,根據(jù)業(yè)務(wù)情況調(diào)整
    mapedFileSizeConsumeQueue=300000
    #destroyMapedFileIntervalForcibly=120000
    #redeleteHangedFileInterval=120000
    #檢測(cè)物理文件磁盤(pán)空間
    diskMaxUsedSpaceRatio=50
    #存儲(chǔ)路徑
    storePathRootDir=/opt/modules/rocketmq/store
    #commitLog存儲(chǔ)路徑
    storePathCommitLog=/opt/modules/rocketmq/store/commitlog
    #消費(fèi)隊(duì)列存儲(chǔ)路徑
    storePathConsumeQueue=/opt/modules/rocketmq/store/consumequeue
    #消息索引存儲(chǔ)路徑
    storePathIndex=/opt/modules/rocketmq/store/index
    #checkpoint 文件存儲(chǔ)路徑
    storeCheckpoint=/opt/modules/rocketmq/store/checkpoint
    #abort 文件存儲(chǔ)路徑
    abortFile=/opt/modules/rocketmq/store/abort
    #限制的消息大小
    maxMessageSize=65536
    # flushCommitLogLeastPages=4
    # flushConsumeQueueLeastPages=2
    # flushCommitLogThoroughInterval=10000
    # flushConsumeQueueThoroughInterval=60000
    # Broker 的角色
    # - ASYNC_MASTER 異步復(fù)制Master
    # - SYNC_MASTER 同步雙寫(xiě)Master
    # - SLAVE
    brokerRole=ASYNC_MASTER
    # 刷盤(pán)方式
    # - ASYNC_FLUSH 異步刷盤(pán)
    # - SYNC_FLUSH 同步刷盤(pán)
    flushDiskType=ASYNC_FLUSH
    #checkTransactionMessageEnable=false
    #發(fā)消息線程池?cái)?shù)量
    #sendMessageTreadPoolNums=128
    #拉消息線程池?cái)?shù)量
    #pullMessageTreadPoolNums=128
    
  5. 修改日志路徑
    cd /opt/modules/rocketmq/conf/
    sed -i 's#${user.home}#/opt/modules/rocketmq#g' *.xml
    (命令說(shuō)明:sed -i在這里起一個(gè)批量替換的作用,sed -i 's#原字符串#新字符#g' 替換的文件

  6. 修改默認(rèn)啟動(dòng)內(nèi)存大小
    cd /opt/modules/rocketmq/bin/

    • 修改runbroker.sh
      vim runbroker.sh
      改前:
      JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
      
      改后:
      JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g"
      
    • 修改runserver.sh
      vim runserver.sh
      改前:
      JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
      
      改后:
      JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
      
  7. 啟動(dòng)RocketMQ
    cd /opt/modules/rocketmq/bin/

    • 啟動(dòng)namesrv
      nohup sh mqnamesrv &
    • 啟動(dòng)broker
      nohup sh mqbroker -c /opt/modules/rocketmq/conf/2m-2s-async/broker-a.properties autoCreateTopicEnable=true > /dev/null 2>&1 &
      20200525001439706.png
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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