1. 程式人生 > 其它 >Apache RocketMQ 4.0.0 - linux安裝與配置筆記

Apache RocketMQ 4.0.0 - linux安裝與配置筆記

一、安裝與配置

1、下載 

官網:http://rocketmq.apache.org/

如:rocketmq-all-4.0.0-incubating-bin-release.zip

需要

64bit OS, Linux/Unix/Mac is recommended; 64bit JDK 1.7+;

2、複製到對應目錄,linux中解壓

複製rocketmq-all-4.0.0-incubating-bin-release.zip到  /opt/rocketmq

mkdir /opt/rocketmq
cd /opt/rocketmq
unzip rocketmq-all-4.0.0-incubating-bin-release.zip 

3、增加執行許可權:

cd bin
chmod +x *

4、增加環境變數

vi /etc/profile

使用vi 編輯器,在profile檔案的末尾加入如下命令:

export ROCKETMQ_HOME=/opt/rocketmq/apache-rocketmq-all
export PATH=$PATH::$ROCKETMQ_HOME/bin

輸入:wq! 儲存並退出

使得配置立刻生效:

source /etc/profile

5、建立日誌目錄

cd /opt/rocketmq && mkdir logs

6、啟動Name Server

cd /opt/rocketmq/apache-rocketmq-all/bin 
&& nohup sh mqnamesrv > /opt/rocketmq/logs/mqnamesrv.log  2> /opt/rocketmq/logs/mqnamesrv.log &

7、配置Broker

啟動之前,可以適當更改一下runbroker.sh引數

runbroker.sh需要根據記憶體大小進行適當地調整

JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xgmn1g -XX:PermSize=1g -XgX:MaxPermSize=1g"

本機為虛擬機器,就設定小點,1-2g記憶體,如下:

修改配置檔案:conf/2m-noslave/broker-a.properties

樣例:

listenPort=10911
namesrvAddr=192.168.62.100:9876
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=72
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH

其中 192.168.62.100 為虛擬機器靜態ip

8、啟動Broker

cd /opt/rocketmq/apache-rocketmq-all/bin 
&& nohup sh mqbroker autoCreateTopicEnable=true 
-c /opt/rocketmq/apache-rocketmq-all/conf/2m-noslave/broker-a.properties 
> /opt/rocketmq/logs/mqbroker.log   2>/opt/rocketmq/logs/mqbroker.log &

autoCreateTopicEnable=true 允許 Broker 自動建立Topic,建議線下開啟,線上關閉

9、測試

測試生產者:

cd /opt/rocketmq/apache-rocketmq-all
export NAMESRV_ADDR=localhost:9876
sh /opt/rocketmq/apache-rocketmq-all/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

測試消費者:

sh /opt/rocketmq/apache-rocketmq-all/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

 測試OK。

二、快捷命令

1、檢視程序

ps aux | grep java | awk '/broker/rocketmq_nameserver'
ps aux | grep java | awk '/broker/rocketmq_brokerserver'

2、檢視日誌

tail -f /opt/rocketmq/logs/mqnamesrv.log
tail -f /opt/rocketmq/logs/mqbroker.log

3、關閉Name Server、Broker

cd /opt/rocketmq/apache-rocketmq-all/bin && sh mqshutdown namesrv
cd /opt/rocketmq/apache-rocketmq-all/bin && sh mqshutdown broker

三、問題

1、如果消費者、生產者位於不通的網段需要經過防火牆的話,需要開通到broker和nameserver的防火牆埠

lokkit -p 9876:tcp -p 10911:tcp

2、 connect to <192.168.62.100:10909> failed

Rocket預設開啟了VIP通道,VIP通道埠為10911-2=10909。若Rocket伺服器未啟動埠10909,則報connect to <> failed。

解決方式:

1)增加一行程式碼

producer.setVipChannelEnabled(false);

2)增加對埠10909的防火牆開啟。

四、運維

官方有提供原始碼可以去玩:

原始碼:

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

裡面包括了各種RocketMQ的擴充套件工具,如

rocketmq-console 是 web控制檯(springboot工程),可以檢視broker、生產者、消費者、訊息等相關的內容。

具體用法可以檢視工程的README.md

效果圖: