消息隊列之rocketmq安裝啓動與常見問題整合

一、 rocketmq 消息隊列

1、介紹

  • 阿里開源的一款高性能、高吞吐量的分佈式消息隊列中間件。

    • 特點:
    1. 響應快:高併發的情況下1ms 響應情況佔比超過99.6%

    2. 高一致性:使用於金融行業,高性能追蹤以及審計模式

    3. 多模型:支持訂閱+點對點

    4. 支持多方式:支持pull+push兩種消息模式

    5. 高性能:單一隊列百萬級別

    6. 更安全:支持單master+多master節點+多master多slave節點

2、概念:

  • producer:消息生產者

  • producer:group:消息生產組,發送同類消息的一個消息生產組

  • consumer:消費者

  • consumer group:消費同個消息的多個實例

  • tag:標籤,子主題(二級分類),用於區分同一個主題下的不同業務的消息

  • topic 主題

  • message:消息

  • broker:mq程序,接收生產的消息,提供給消費者消費的程序

  • name server:給生產和消費者提供路由信息,提供輕量級的服務發現和路由

3、官網地址:http://rocketmq.apache.org
在這裏插入圖片描述
4、GitHub 源碼地址:https://github.com/apache/rocketmq

二、 快速部署rocketmq

1、下載安裝
地址: http://rocketmq.apache.org/

安裝須知: “ * ” 爲硬性要求

    64bit OS, Linux/Unix/Mac is recommended;  *
	64bit JDK 1.8+;(必須)*
	Maven 3.2.x;  *
	Git; 
	4g+ free disk for Broker server(不是硬性要求但需要更改內存配置)

步驟:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
啓動:
1、本地widows安裝啓動
解壓——>進入bin ——>使用cmd命令——>start mqnamesrv(啓動名稱服務)
在這裏插入圖片描述
進入bin ——>使用cmd命令——>start mabroker(啓動broker)
在這裏插入圖片描述

2、 linux/os/mac 環境安裝

  • 解壓
unzip  rocketmq-all-4.6.0-bin-release.zip
  • 修改文件夾名
mv  rocketmq-all-4.6.0-bin-release  rocketmq-4.6
  • 進入到rocketmq-4.6(我的版本是4.6版本)

  • 啓動名稱服務

建議使用守護進程 :啓動名稱服務 
nohup sh bin/mqnamesrv  &  不指定IP啓動默認本地
nohup sh bin/mqnamesrv -n  你的電腦IP:9876 &  命令開啓

使用tail -f nohup.out 
發現 :The Name Server boot success. serializeType=JSON  說明啓動成功
  • 啓動broker
官網命令:nohup sh bin/mqbroker -n localhost:9876 & 
建議使用命令 nohup sh bin/mqbroker -n  你的電腦IP:9876 -c conf/broker.conf autoCreateTopicEnable=true &

爲什麼?

  • 官網命令是使用localhost本機啓動broker並且沒有指定公網IP 和自動創建topic 會出現下面問題

    • 問題1:連接超時
      org.apache.rocketmq.remoting.exception.RemotingException sendDefaultImpl call timeout
      原因:
         1、防火牆沒有開放端口
         2、如果是阿里雲等服務器沒有配置安全組
         3、找不到對應的broker IP

      問題解決:

      1>、防火牆開放端口 9876 、10909 、10911
             9876:namesrv 訪問端口
            10911:broker 訪問端口
            10909:數據VIP訪問端口

      2>、設置安全組
      在這裏插入圖片描述
      3>、修改配置文件

    使用命令 vi rocketmq-4.6/conf/broker.conf 
    添加 brokerIP1=47.xx.xx.93(你的外部服務器地址(安裝在阿里雲服務器上),如果是本地就是本機IP)
    
    • 問題2:No route info of this topic 沒有topic信息

      • 產生原因:

        1、Broker禁止自動創建Topic,且用戶沒有通過手工方式創建Topic
        2、Broker沒有正確連接到Name Server
        3、Producer沒有正確連接到Name Server

      問題解決 :啓動命令加上 autoCreateTopicEnable=true

    • 問題3 There is insufficient memory for the Java Runtime Environment to continue.內存不夠
      產生原因:rocketmq啓動要求4G 內存所以需要修改啓動配置
      解決:

    原配置:-Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m

     	你需要進到bin目錄下 使用 vi runserver.sh 以及runbroker.sh 修改成下面內存佔用
     			  
     	vi runserver.sh
     	JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
     				
     	vi runbroker.sh
     	JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m"
    

    然後使用 jps 命令查看Java進程 kill -9 pid 殺死rocketmq 進程 重啓rocketmq服務

       jps
    

    在這裏插入圖片描述

    kill -9 pid
    

    在這裏插入圖片描述
    3、安裝可視化控制檯

  • GitHub下載地址: https://github.com/apache/rocketmq-externals
    進入到console項目目錄使用maven命令打包

    cd rocketmq-externals\rocketmq-console
    mvn clean package -Dmaven.test.skip=true
    使用java -jar 啓動
    

上述打包操作 windows 和Linux都可以

如果發現可視化控制檯出現無法連接遠程broker 修改配置文件.properties
在這裏插入圖片描述
如果項目還是啓動不了 查看並修改pom 文件rocketmq 版本 如下
在這裏插入圖片描述
啓動可視化平臺:
在這裏插入圖片描述
訪問可視化平臺界面 localhost:8080
在這裏插入圖片描述

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