1. 程式人生 > >RocketMQ雙Master叢集搭建

RocketMQ雙Master叢集搭建

RocketMQ 的Git地址:https://github.com/apache/rocketmq


在Apache RocketMQ官網下載原始碼,或者使用上面提供的github地址下載原始碼,並使用Apache RocketMQ官網提供的方式打包

mvn -Prelease-all -DskipTests clean install -U


構建結果


在原始碼檔案distribution/target/apache-rocketmq的目錄下,可以檢視到打好的tar包


本文要實現的是雙Master模式的RocketMQ叢集。兩臺Linux虛擬機器分別為192.168.0.220、192.168.0.221。

192.168.0.220     NameServer      Broker


192.168.0.221     NameServer      Broker

修改220、221上的hosts

vi /etc/hosts


service network restart   重啟網路服務

確保兩臺機器相互之間是可以ping通的


將apache-rocketmq.tar.gz上傳到220、221兩臺機器上。在/usr/local下,新建rocketmq目錄,並將tar包解壓到該目錄下。

tar -zxvf apache-rocketmq.tar.gz -C /usr/local/rocketmq/

建立儲存路徑

cd /usr/local/rocketmq

mkdir store

mkdir ./store/commitlog

mkdir ./store/consumequeue

mkdir ./store/index

修改220、221上的RocketMQ日誌配置檔案

mkdir /usr/local/rocketmq/logs

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

RocketMQ配置檔案


修改220節點上的配置檔案


下圖中的配置與上面/usr/local/rocketmq/store下新建的儲存路徑對應


ASYNC_FLUSH相對於SYNC_FLUSH來說,執行速度更快,但是在宕機的情況下,可能會出現少量的訊息丟失。後者安全性更高,在宕機情況下不會出現訊息丟失。


修改221節點上的配置檔案,同樣也是修改broker-a.properties


分別修改220、221節點上的broker-b.properties,其內容與自己所在節點上的broker-a.properties基本相同,唯一需要修改的是brokerName=broker-b

叢集JVM調優

vim /usr/local/rocketmq/bin/runbroker.sh   設定Broker的JVM引數


根據虛擬Linux的實際情況,設定為:

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"

vim /usr/local/rocketmq/bin/runserver.sh   設定NameServer的JVM引數


根據虛擬Linux的實際情況,設定為:

JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

先啟動NameServer,再啟動Broker

在linux中nohup指令的用法

nohup program &  使程序在使用者退出登入後仍舊繼續執行,原程式的的標準輸出被自動改向到當前目錄下的nohup.out檔案,起到了log的作用,實現了完整的守護程序功能。

在220、221機器上執行指令,啟動NameServer

cd  /usr/local/rocketmq/bin

nohup sh mqnamesrv &


檢視nameserver的日誌資訊,確認220、221中NameServer啟動成功。

cd  /usr/local/rocketmq/logs/rocketmqlogs

vi namesrv.log


啟動220上的BrokerServer A

cd  /usr/local/rocketmq/bin

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties autoCreateTopicEnable=true  >/dev/null 2>&1 &    

啟動221機器上的BrokerServerB

cd  /usr/local/rocketmq/bin

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties  autoCreateTopicEnable=true  >/dev/null 2>&1 & 

檢視220上的Broker啟動日誌資訊

cd  /usr/local/rocketmq/logs/rocketmqlogs

vi broker.log



檢視221上的Broker啟動日誌資訊


使用jps指令檢視當前系統的Java程序


RocketMQ管控臺

在github上開源的RocketMQ擴充套件專案地址

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



進入rocketmq-console,點選README.md檢視rocketmq-console注意事項


提示資訊


下載該專案並匯入到Eclipse,其中rocketmq-console即控制檯專案。修改application.properties中的namesrvAddr

rocketmq.config.namesrvAddr=192.168.0.220:9876;192.168.0.221:9876

在命令列中進入到磁碟中rocketmq-console對應目錄,執行mvn clean package -Dmaven.test.skip=true


檢視生成的jar包


啟動並檢視rocketmq-console

在Windows的命令列中,執行如下指令

java  -jar  rocketmq-console-ng-1.0.0.jar

訪問地址  http://127.0.0.1:8080



叢集


訊息