SpringCloudAlibaba全家桶之 RocketMQ 服務快速搭建(包含視覺化console)

2020-08-10 10:36:13

RocketMQ 介紹

簡介

RocketMQ 是一款分佈式、佇列模型的訊息中介軟體,具有以下特點:

  • 能夠保證嚴格的訊息順序
  • 提供豐富的訊息拉取模式
  • 高效的訂閱者水平擴充套件能力
  • 實時的訊息訂閱機制 機製
  • 億級訊息堆積能力
選用理由:
  • 強調叢集無單點,可延伸,任意一點高可用,水平可延伸。
  • 海量訊息堆積能力,訊息堆積後,寫入低延遲。
  • 支援上萬個佇列
  • 訊息失敗重試機制 機製
  • 訊息可查詢
  • 開源社羣活躍
  • 成熟度(經過雙十一考驗)

安裝步驟(這裏只示範單機模式)

1. 上傳解壓安裝包
tar -xvf apache-rocketmq.tar.gz -C `你的rocketmq地址`
2. 建立所需目錄
mkdir `你的rocketmq地址`/store
mkdir `你的rocketmq地址`/store/commitlog
mkdir `你的rocketmq地址`/store/consumequeue
mkdir `你的rocketmq地址`/store/index
3. 修改broker組態檔

vim 你的rocketmq地址/conf/2m-2s-async/broker-a.properties

#所屬叢集名字
brokerClusterName=rocketmq-cluster
#broker 名字,注意此處不同的組態檔填寫的不一樣
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer 地址,分號分割
namesrvAddr=rocketmq-nameserver1:9876
#在發送訊息時,自動建立伺服器不存在的 topic,預設建立的佇列數
defaultTopicQueueNums=4
#是否允許 Broker 自動建立 Topic,建議線下開啓,線上關閉
autoCreateTopicEnable=true
#是否允許 Broker 自動建立訂閱組,建議線下開啓,線上關閉
autoCreateSubscriptionGroup=true
#Broker 對外服務的監聽埠
listenPort=10911
#刪除檔案時間點,預設凌晨 4 點
deleteWhen=04
#檔案保留時間,預設 48 小時
fileReservedTime=120
#commitLog 每個檔案的大小預設 1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue 每個檔案預設存 30W 條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理檔案磁碟空間
diskMaxUsedSpaceRatio=88
#儲存路徑
storePathRootDir=`你的rocketmq地址`/store
#commitLog 儲存路徑
storePathCommitLog=`你的rocketmq地址`/store/commitlog
#消費佇列儲存路徑儲存路徑
storePathConsumeQueue=`你的rocketmq地址`/store/consumequeue
#訊息索引儲存路徑
storePathIndex=`你的rocketmq地址`/store/index
#checkpoint 檔案儲存路徑
storeCheckpoint=`你的rocketmq地址`/store/checkpoint
#abort 檔案儲存路徑
abortFile=`你的rocketmq地址`/store/abort
#限制的訊息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 非同步複製 Master
#- SYNC_MASTER 同步雙寫 Master
#- SLAVE
brokerRole=ASYNC_MASTER
#刷盤方式
#- ASYNC_FLUSH 非同步刷盤
#- SYNC_FLUSH 同步刷盤
flushDiskType=ASYNC_FLUSH
#checkTransactionMessageEnable=false
#發訊息執行緒池數量
#sendMessageThreadPoolNums=128
#拉訊息執行緒池數量
#pullMessageThreadPoolNums=128
4. 修改記憶體參數(此處爲開發測試環境, 避免 broker 預設8g記憶體導致佔用過高)

vim /usr/local/rocketmq/bin/runbroker.sh

#==============================================================================
# 開發環境 JVM Configuration
#==============================================================================
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -
XX:MaxPermSize=320m"
# vim /usr/local/rocketmq/bin/runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:PermSize=128m -
XX:MaxPermSize=320m"
5. 修改日誌組態檔
mkdir -p /usr/local/rocketmq/logs
# cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml
6. 啓動nameserver
cd `你的rocketmq地址`
nohup sh bin/mqnamesrv &
7. 啓動 BrokerServer A
cd `你的rocketmq地址`
nohup sh bin/mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &
8. 檢視啓動狀態
jps
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log
從GitHub上下載視覺化後端原始碼並打包

GitHub下載視覺化console-NG模組下載
下載好之後 直接Maven 打成一個jar包 其實就是個springboot web程式

通過命令列進入到rocketmq-console子目錄,通過maven對其進行編譯打包,mvn package
此時在rocketmq-console/target目錄下生成了一個叫rocketmq-console-ng-1.0.1.jar的jar包

java -jar rocketmq-console-ng-1.0.1.jar 啓動注意加入兩個參數
  • –server.port=12581
  • –rocketmq.config.namesrvAddr=rocketmq主機地址:9876
大概長這個樣子

在这里插入图片描述

有點麻煩 一步一步來 最終都會大功告成