rocketmq安裝部署

一、官網地址: http://rocketmq.apache.org/docs/

下載rocketmq rocketmq-all-4.4.0-bin-release.zip

二、安裝部署

主機                  角色                                       模式

172.16.1.1         nameserver,broker               broker主、broker從

172.16.1.2         nameserver,broker               broker主、broker從



生產需要擴容防止單點故障

    1.部署配置

       RocketMQ的消息是存儲到磁盤上的,這樣既能保證斷電後恢復,又可以讓存儲的消息量超出內存的限制。

       RocketMQ爲了提高性能,會儘可能地保證磁盤的順序寫。消息在通過Producer寫入RocketMQ的時候,有兩種

       寫磁盤方式

       異步刷盤方式:在返回寫成功狀態時,消息可能只是被寫入了內存的PAGECACHE,寫操作的返回快,

       吞吐量大;當內存裏的消息量積累到一定程度時,統一觸發寫磁盤操作,快速寫入

       同步刷盤方式:在返回寫成功狀態時,消息已經被寫入磁盤。具體流程是,消息寫入內存的PAGECACHE後,立刻

       通知刷盤線程刷盤,然後等待刷盤完成,刷盤線程執行完成後喚醒等待的線程,返回消息寫成功的狀態。


      同步複製,異步複製

      如果一個broker組有Master和Slave,消息需要從Master複製到Slave上,有同步和異步兩種複製方式。

      同步複製: Master和Slave均寫成功後才反饋給客戶端寫成功狀態

      異步複製: 只要Master寫成功即可反饋給客戶端寫成功狀態

2.安裝步驟

      172.16.1.1上broker master操作

       mkdir /data/rocketMQ-2m2s/store

       mkdir /data/rocketMQ-2m2s/store/{commitlog,consumequeue,index}

       unzip rocketmq-all-4.4.0-bin-release.zip

       mv rocketmq-all-4.4.0-bin-release  /usr/local/rocketmq

       vim /usr/local/rocketmq/conf/2m-2s-async/broker-a.properties # 修改參數(登錄主機查看參數)

        # 集羣名字

        brokerClusterName=KaishuCluster

        brokerName=broker-a (跟從這裏一樣,跟其他主這裏不能一樣)

        # 0 表示 Master,>0 表示 Slave

        brokerId=0

        #nameServer地址,分號分割

        namesrvAddr=172.17.5.42:9876;172.17.5.45:9876

        #在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數

        defaultTopicQueueNums=300

        #是否允許 Broker 自動創建Topic,建議線下開啓,線上關閉

        autoCreateTopicEnable=false

        #是否允許 Broker 自動創建訂閱組,建議線下開啓,線上關閉

        autoCreateSubscriptionGroup=false

        #Broker 對外服務的監聽端口

        listenPort=10911

        haListenPort=10912

        # 刪除過期文件時間點,默認凌晨4點

        deleteWhen=04

        fileReservedTime=48

        #commitLog每個文件的大小默認1G

        mapedFileSizeCommitLog=1073741824

        #ConsumeQueue每個文件默認存30W條,根據業務情況調整

        mapedFileSizeConsumeQueue=300000

        #檢測物理文件磁盤空間,commitlog目錄所在分區的最大使用比例,如果commitlog目錄所在的分區使用比例大於該值,則觸發過期文件刪除

        diskMaxUsedSpaceRatio=88

        #broker存儲目錄

        storePathRootDir=/data/rocketMQ-2m2s/store

        #commitLog 存儲路徑

        storePathCommitLog=/data/rocketMQ-2m2s/store/commitlog

        #限制的消息大小

        maxMessageSize=65536

        #Broker 的角色

        #- ASYNC_MASTER 異步複製Master

        #- SYNC_MASTER 同步雙寫Master

        #- SLAVE

        brokerRole=SYNC_MASTER

        #刷盤方式

        #- ASYNC_FLUSH 異步刷盤

        #- SYNC_FLUSH 同步刷盤

        flushDiskType=ASYNC_FLUSH

        #發消息線程池數量

        sendMessageThreadPoolNums=128

        #拉消息線程池數量

        pullMessageThreadPoolNums=128

        #打開鎖

        useReentrantLockWhenPutMessage=true

        waitTimeMillsInSendQueue=3000


       vim /usr/local/rocketmq/conf/logback_namesrv.xml 修改nameserver數據保存地址(登錄主機查看配置)

       

       172.16.1.2上broker master操作

       mkdir /data/rocketMQ-2m2s/store

       mkdir /data/rocketMQ-2m2s/store/{commitlog,consumequeue,index}

       unzip rocketmq-all-4.4.0-bin-release.zip

       mv rocketmq-all-4.4.0-bin-release  /usr/local/rocketmq

       vim /usr/local/rocketmq/conf/2m-2s-async/broker-b.properties # 修改參數(登錄主機查看參數)

       vim /usr/local/rocketmq/conf/logback_namesrv.xml 修改nameserver數據保存地址(登錄主機查看配置)

       

       172.16.1.1上broker slave操作

       mkdir /data/rocketMQ-2m2s/store-s

       mkdir /data/rocketMQ-2m2s/store-s/{commitlog,consumequeue,index}

       vim /usr/local/rocketmq/conf/2m-2s-async/broker-b-s.properties # 修改參數(登錄主機查看參數)

            

       172.16.1.2上broker slave操作

       mkdir /data/rocketMQ-2m2s/store-s

       mkdir /data/rocketMQ-2m2s/store-s/{commitlog,consumequeue,index}

       vim /usr/local/rocketmq/conf/2m-2s-async/broker-a-s.properties # 修改參數(登錄主機查看參數)


  3.啓動停止服務

        啓動兩臺機器的nameserver服務

        cd /usr/local/rocketmq/bin

        nohup sh mqnamesrv &


        兩臺機器啓動broker 主從

        172.16.1.1啓動主

        nohup sh mqbroker -c ../conf/2m-2s-async/broker-a.properties &

        172.16.1.2啓動主

        nohup sh mqbroker -c ../conf/2m-2s-async/broker-b.properties &


        172.16.1.1啓動從

        nohup sh mqbroker -c ../conf/2m-2s-async/broker-b-s.properties &

        172.16.1.2啓動從

         nohup sh mqbroker -c ../conf/2m-2s-async/broker-a-s.properties &    

   

三、rocketmq監控

       下載https://github.com/apache/rocketmq-externals

        解壓unzip rocketmq-externals-master

         cd rocketmq-externals-master/rocketmq-console/src/main/resources

         vim application.properties

         rocketmq.config.nameservAddr=172.16.1.1:9876,172.16.1.2:9876 #修改

         rocketmq.config.dataPath=/data/rocketMQ-2m2s # 修改

         rocketmq.config.loginRequired=true # 設置登錄權限

         vim users.properties # 設置登錄賬號

         vim pom.xml # 根據安裝版本不同修改版本號

         mvn clean package -Dmaven.test.skip=true

         啓動:nohup java -jar rocketmq-console-ng-1.0.1.jar --server.port=8080 --rocketmq.config.namesrvAddr=172.16.1.1:9876 &  # --rocketmq.config.namesrvAddr必須加上該參數,否則會報錯

         登錄http://172.16.1.1:8080

四、命令使用

創建topic

 sh mqadmin updateTopic -n 172.17.5.42:9876 -b 172.17.5.42:10911 -c 集羣名 -t app01

sh mqadmin topicList -n 172.17.5.42:9876 查看所有topic

sh mqadmin  clusterList -n 172.17.5.45:9876 查看集羣消息


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章