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
效果圖: