RocketMQ消息隊列部署與可視化界面安裝


MQ安裝部署

最新版本下載:http://rocketmq.apache.org/release_notes

修改配置

vi conf/broker.conf

添加brokerIP1

brokerIP1=192.168.0.1

brokerIP1:配置broker所在服務器的ip地址,以便Name Server連接

修改 runserver.sh 和 runbroker.sh

  • runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
  • runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

運行Name Server

nohup sh bin/mqnamesrv &

查看運行日志:tail -f ~/logs/rocketmqlogs/namesrv.log

運行Broker

nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.conf &

通過-c參數指定配置文件
查看運行日志:tail -f ~/logs/rocketmqlogs/broker.log

停止服務的方式

sh bin/mqshutdown broker
sh bin/mqshutdown namesrv

安裝可視化管理界面

  • 下載
https://github.com/apache/rocketmq-externals
  • 編譯
cd rocketmq-console
mvn clean package -Dmaven.test.skip=true
  • 運行
cd target
nohup java -jar \
  -Drocketmq.config.namesrvAddr=localhost:9876 \
  -Drocketmq.config.isVIPChannel=false \
  rocketmq-console-ng-1.0.1.jar &
  • 訪問
http://localhost:8080/

常見異常處理

MQClientException: No route info of this topic, TopicTest1

異常說明

在客戶端的Producer運行起來准備發送消息時拋異常為 “ No route info of this topic ” 異常產生的原因可能是:

  1. Broker 禁止自動創建 Topic,且用戶沒有通過手工方式創建 Topic

  2. Broker 沒有正確連接到 Name Server

  3. Producer 沒有正確連接到 Name Server

解決辦法

排查1:Broker禁止自動創建Topic,且用戶沒有通過手工方式創建 Topic

可以在rocketmq所在目錄下執行 " sh bin/mqbroker -m " 來查看 broker 的配置參數

排查2:Broker 沒有正確連接到 Name Server

通過查看broker的日志 tail -f ~/logs/rocketmqlogs/broker.log 看看有沒有錯誤信息

排查3:Producer 沒有正確連接到 Name Server

檢查程序連接Name Server的地址有沒有錯

如果在雲服務器上,檢查安全組的配置9876端口有沒有開發

看看有沒有打開防火牆,有的話設置防火牆開放9876端口

RemotingTooMuchRequestException: sendDefaultImpl call timeout

異常說明

  • 在客戶端的 Producer 運行起來准備發送消息時拋異常如下

  • 通常因為Name Server連接不上Broker

解決辦法

排查1:Broker禁止自動創建Topic,且用戶沒有通過手工方式創建 Topic

  • 可以在rocketmq所在目錄下執行 " sh bin/mqbroker -m " 來查看 broker 的配置參數

  • autoCreateTopicEnable=true 證明是沒有問題的

排查2:Broker 沒有正確連接到 Name Server

通過查看broker的日志 tail -f ~/logs/rocketmqlogs/broker.log 看看有沒有錯誤信息

排查3:Producer 沒有正確連接到 Name Server

檢查程序連接Name Server的地址有沒有錯

如果在雲服務器上,檢查安全組的配置9876端口有沒有開發

看看有沒有打開防火牆,有的話設置防火牆開放9876端口

RemotingTooMuchRequestException: sendDefaultImpl call timeout

異常說明

  • 在客戶端的 Producer 運行起來准備發送消息時拋異常如下

  • 通常因為Name Server連接不上Broker

解決辦法

檢查 rocketmq-console 的集群頁簽,broker 的地址是否正確

broker地址的配置方式請參考 安裝部署 中提到的步驟:

  1. 修改broker.conf的配置,添加 brokerIP1 參數

  2. 啟動broker時加上 -c 參數指定配置文件

消費/查看不了死信隊列topic的消息

異常說明

死信隊列默認的perm值為2沒有查看權限

解決辦法

在控制台把隊列的perm改為6就可以了

perm為2會導致代碼無法消費dlq隊列的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM