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
叢集
訊息