Linux下安裝RocketMQ

RocketMQ安裝前準備:

  1. 建議使用64位操作系統,Linux / Unix / Mac;本人使用的是CentOS7,你當然也可以使用小紅帽或者UBuntu。
  2. 64位JDK 1.8+;RocketMQ4.3.x之後都是使用jdk1.8+,所以你得保證你得安裝環境必須裝有jdk1.8+
  3. Maven 3.2.x;Maven工具其實不一定需要使用的,但是也建議大家在安裝環境下配置好Maven3.3.9+
  4. 4g+內存用於Broker服務器, RocketMQ定位是分佈式消息中間件,屬重量級應用,所以它是比較吃內存的。但是如果你只是想在本地嘗試一下搭建流程,或者你是想在自己的虛擬機上搭建一個對性能沒什麼要求的測試服務器,那麼你可以只爲這個虛擬機分配1.5g + 的內存。當然,低內存就代表着低性能,而且RocketMQ在低內存下運行是相對容易出錯的,具體的內存分配,看你個人情況而定。
  5. 本次安裝的是單機版本

安裝環境配置:

如果你的安裝環境沒有jdk1.8+,可以參考這個博客 : Linux下安裝jdk1.8

如果你想要在Linux下配置Maven,可以參考這個博客:Linux下安裝maven

[注]:這裏需要注意一下,在配置jdk1.8和maven的過程中,都需要在 /etc/profile 目錄下配置他們的環境變量,並將java_home和maven_home都配置到 PATH 變量上,千萬不要配置兩個PATCH,否則可能會出現預料之外的情況,具體配置可以參考本人的PATCH變量: export PATH=$PATH:${JAVA_PATH}:$MAVEN_HOME/bin

  以後如果有更多的環境變量配置,就在PATCH變量值的後面加上  :${XXX_HOME}/bin  即可。注意,Linux下的環境變量之間用冒號隔開


一、下載RocketMQ到安裝環境下:

好了,終於開始正式安裝RocketMQ了。

首先我們需要下載RocketMQ的安裝包:RocketMQ4.3.1  然後將安裝包上傳到Linux服務器。

當然,你也可以直接用wget命令在Linux系統上直接下載安裝包: 

wget http://mirrors.hust.edu.cn/apache/rocketmq/4.3.1/rocketmq-all-4.3.1-bin-release.zip

  如果你還沒有安裝wget,可以使用下面命令完成安裝

yum -y install wget

 


二、完成RocketMQ的安裝和配置

2.1 將安裝文件解壓到安裝目錄下,這裏將它安裝到usr/local下

unzip rocketmq-all-4.3.1-bin-release.zip -d /usr/local

如果沒有unzip命令,可以使用yum命令安裝:   yum install unzip

解壓完之後,可以看到usr/local目錄下多了個文件夾 -> rocketmq-all-4.3.1-bin-release,由於文件名太長,決定使用 ln命令給這個目錄映射一個簡短的新名字:

ln -s rocketmq-all-4.3.1-bin-release rocketmq

這樣以後配置文件目錄時只需要配置rocketmq即可替代rocketmq-all-4.3.1-bin-release

2.2 創建文件存儲目錄


mkdir /usr/local/rocketmq/store
mkdir /usr/local/rocketmq/store/commitlog
mkdir /usr/local/rocketmq/store/consumequeue
mkdir /usr/local/rocketmq/store/index

2.3 修改配置文件

vim /usr/local/rocketmq/conf/2m-2s-async/broker-a.properties

可以看到界面如下:

 這裏建議將默認配置刪除。

我這裏貼出一份本人的配置文件[配置參考網絡]


## 配置broker的配置文件##
## 集羣名稱
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
##設置的磁盤最大利用率。默認是75
diskMaxUsedSpaceRatio=75
#存儲路徑
storePathRootDir=/usr/local/rocketmq/store
#commitLog 存儲路徑
storePathCommitLog=/usr/local/rocketmq/store/commitlog
#消費隊列存儲路徑存儲路徑
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
#消息索引存儲路徑
storePathIndex=/usr/local/rocketmq/store/index
#checkpoint 文件存儲路徑
storeCheckpoint=/usr/local/rocketmq/store/index/checkpoint
#abort 文件存儲路徑
abortFile=/usr/local/rocketmq/store/index/abort
#限制的消息大小 建議 65536
maxMessageSize=10240
#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
#發消息線程池數量 128
#sendMessageThreadPoolNums=64
#拉消息線程池數量 128
#pullMessageThreadPoolNums=64

2.4 修改日誌配置:

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

上述命令可分爲兩部分: 首先cd /usr/local/rocketmq/conf 自 是進入rocketmq的config目錄下,然後sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml 是爲了將conf目錄下所有的xml文件中的 ${user.home}內容修改爲 /usr/local/rocketmq

命令修改前的配置如下:

可以看到RocketMQ的日誌文件默認是打印到user.home目錄下。

我們執行sed 命令後,改變日誌的輸出路徑:

這樣日誌就會打印到RocketMQ安裝目錄下。其實也可以不改,這個要看個人的習慣,不改的話默認打印到user.home下,比如你說root用戶,日誌就會在/root/logs下。


2.5 修改啓動命令

 到了這一步其實已經可以啓動了,但是如果你的安裝環境內存不夠的話,必須要修改了啓動參數才能正常運行.

 2.5.1 修改broker啓動參數

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

修改java-configuration :

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx512m -Xmn256"  修改堆內存的配置

25.2 修改server的啓動參數

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

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx512m -Xmn256m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m"

上述配置的參數值僅僅是爲了降低內存佔用而設,其值沒有其他參考價值


三、正式啓動RocketMQ

3.1 金融RocketMQ的bin目錄下

cd /usr/local/rocketmq/bin

3.2 啓動nameserver

nohup sh mqnamesrv &

至於爲什麼要用nohup和&, 博主還確實不知道原因,如果有大牛看到,歡迎在評論區留言告訴博主一聲。

這裏可以用jps查看nameserver的啓動情況,如果出現如下的界面,說明已經啓動成功

注:在啓動nameserver的過程中,有時會讓當前命令行界面丟失,無法輸入指令。如圖:

這時候只能新開一個窗口來執行後面的操作


3.3 啓動broker

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

使用jsp命令查看程序運行情況:

可以看到,broker已經啓動起來了


3.4 查看RocketMQ的broker日誌和namesrv日誌:

tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/broker.log
tail -f -n 500 /usr/local/rocketmq/logs/rocketmqlogs/namesrv.log

四、使用Tomcat部署RocketMQ的控制檯

4.1 首先下載RocketMQ的控制檯擴展

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

這裏需要注意的是,我們這裏下載的是rocketmq-externals項目的1.0.0分支,這個分支親測可以正常運行,但是rocketmq-externals項目的master分支項目你想要運行起來還是比較麻煩的,博主就搞了很久,比如在對master分支下的項目下載到本地後,找到rocketmq-console項目,執行mvn package的時候就報jar報miss異常,沒辦法只能將4.3.1版本的jar包導入,卻發現和mater分支下的代碼不兼容,項目直接報錯,啓動不起來。額...最後balabalabal一頓操作,還是沒有解決問題,實在是慚愧...

4.2 配置console項目的application.properties文件

4.3 打包項目

mvn package -Dmaven.test.skip

4.4 運行項目

 將項目打包生成的jar包使用java -jar即可運行起來,如果jar包運行不起來,可以試試在項目根目錄下運行 mvn spring-boot:run

運行完畢後,在瀏覽器上輸入 localhost:8080即可啓動RocketMQ的監控系統:

好了,RocketMQ就此安裝結束

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