<form id="jrvnn"></form>

        <address id="jrvnn"><listing id="jrvnn"></listing></address>
        <form id="jrvnn"><nobr id="jrvnn"><meter id="jrvnn"></meter></nobr></form>

          <sub id="jrvnn"><listing id="jrvnn"></listing></sub>

                RocketMQ 零基礎 集群及控制臺部署

                小編:管理員 37閱讀 2022.08.03

                準備工作:

                一、首先準備linux環境 使用了兩個虛擬機系統 版本為Centos 7 ip地址固定為192.168.194.128 192.168.194.129

                安裝好JDK MAVEN 配置好對應環境變量

                二、RocketMQ的集群模式有很多種:單Master(可用性低 不安全) 多Master(無Slave) 多Master多Slave

                對于有主有從的模式,其中集群的寫模式分兩種:1)同步雙寫 主從都寫成功后才返回成功 2)異步復制 主寫成功后復制給從

                本次使用多Master模式搭建 也就是兩臺機器都為主節點

                三、為了方便之后兩臺機器互相訪問 修改兩個機器的hosts文件 vim /etc/hosts 增加如下內容

                之后重啟網絡服務 service network restart 并測試是否能成功ping通


                開始部署:一、安裝:

                首先下載RocketMQ源碼包 https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.4.0/rocketmq-all-4.4.0-source-release.zip

                然后在linux中用解壓 使用maven編譯 編譯過程耗時五到十分鐘左右 編譯成功后會在distribution/target/下生成可執行的項目

                > unzip rocketmq-all-4.4.0-source-release.zip
                  > cd rocketmq-all-4.4.0/
                  > mvn -Prelease-all -DskipTests clean install -U
                  > cd distribution/target/apache-rocketmq
                復制

                為了方便我將這個文件夾創建了軟連接到/usr/loacl/ 下


                二、配置修改

                1)在rocketmq下新建了/store /store/commitlog /store/consumequeue /store/index /store/checkpoint /store/abort幾個文件夾用來存放mq的一些數據等

                2)rocketmq的配置文件在conf文件夾下這里有三個文件夾

                是官方提供的三種配置:

                2主2從異步 2主2從同步 2主0從

                我使用的將是2m-noslave cd到里面看見有兩個broker的配置文件 a 和 b 每臺機器使用一個配置

                如果有三臺主機就再在每臺機器上加個broker-c.properties

                #集群名 要一致
                brokerClusterName=rocketmq-cluster
                #a配置文件就是broker-a b配置文件就是broker-b
                brokerName=broker-a
                #為0 是master 若>0 是slave
                brokerId=0
                #指定namesrv地址
                namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
                #默認topic數
                defaultTopicQueueNums=4
                #是否開啟自動創建topic 建議線下開啟線上關閉
                autoCreateTopicEnable=true
                #自動創建訂閱組
                autoCreateSubscriptionGroup=true
                #對外提供服務的端口
                listenPort=10911
                #每天凌晨4點刪除數據
                deleteWhen=04
                fileReservedTime=120
                mapedFileSizeCommitLog=1073741824
                mapedFileSizeConsumeQueue=30000
                diskMaxUsedSpaceRatio=88
                #mq的數據 日志等存放位置 store文件夾為自行創建
                storePathRootDir=/usr/local/rocketmq/store
                storePathCommitLog=/usr/local/rocketmq/store/commitlog
                storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
                storePathIndex=/usr/local/rocketmq/store/index
                storeCheckpoint=/usr/local/rocketmq/store/checkpoint
                abortFile=/usr/local/rocketmq/store/abort
                maxMessageSize=65536
                #異步復制的master
                brokerRole=ASYNC_MASTER
                #異步刷盤
                flushDiskType=ASYNC_FLUSH
                復制

                對b配置文件進行相同的修改 只是brokerName稍有不同 這樣兩份配置文件除了brokerName不同 其余均相同

                3)為了查看日志方便 修改一下rocketmq的日志配置文件

                執行 cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml 進行替換

                4)虛擬機內存并不多 所以要修改一下rocketmq的jvm啟動參數

                首先是broker的啟動腳本 vim /usr/local/rocketmq/bin/runbroker.sh

                將堆的初始化大小與最大大小設為1g 新生代設為512m 這里要注意不能將初始化大小設置太小 最小1g 太小了啟動不起來

                其次是namesrv的啟動腳本 vim /usr/local/rocketmq/bin/runserver.sh 進行同樣的修改即可 這樣所以配置都完成了


                三、啟動

                1)rocketmq分nameserver與broker 注意啟動時需要先啟動兩臺機器的nameserver 再啟動broker

                關閉時要先關閉broker 再關閉nameserver

                2)先進入bin目錄: cd /usr/local/rocketmq/bin

                其中 mqadnin是管理員命令,mqnamesrv是NameServer,mqbroker是Broker

                3)使用守護線程的方式啟動兩臺機器的 nameserver:nohup sh mqnamesrv &

                jps查看一下nameserver是否成功啟動了

                NameSrvStartup對應剛才的命令

                4)使用守護線程的方式啟動兩天機器的broker 這里要注意啟動時指定的配置文件是有區別的

                192.168.194.128機器上執行:nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &

                192.168.194.129機器上執行:nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &

                第一臺使用的broker-a 第二臺使用的broker-b配置文件 若要查看啟動日志 直接查看本目錄下nohup.out文件即可

                jps查看

                兩臺機器都成功啟動了namesrv和broker

                這樣集群就搭建完畢了


                四、控制臺部署

                但是rocketmq是不像activemq自帶控制臺的

                為了方便查看集群狀態與查看是否成功部署 我們安裝一個控制臺

                下載地址:https://github.com/apache/rocketmq-externals/releases/tag/rocketmq-console-1.0.0

                下載成功后 需要改一下配置application.properties

                namesrv地址:

                端口可以自定義 默認8080

                然后使用mvn -package命令打包 我是直接使用的idea打包的 也可以直接使用命令行方式

                打包成功后 在target文件夾下會出現一個jar包: rocketmq-console-ng-1.0.0.jar 這就是我們要使用的控制臺了

                將其放到其中一臺機器上 我這里放到了192.168.194.128的 /software/文件夾下 然后

                直接后臺啟動它 nohup java -jar rocketmq-console-ng-1.0.0.jar &

                打開瀏覽器 訪問192.168.194.128:8080

                在控制臺可以查看集群的信息 成功!

                關聯標簽:
                皇宫里的共享小公主

                  <form id="jrvnn"></form>

                      <address id="jrvnn"><listing id="jrvnn"></listing></address>
                      <form id="jrvnn"><nobr id="jrvnn"><meter id="jrvnn"></meter></nobr></form>

                        <sub id="jrvnn"><listing id="jrvnn"></listing></sub>