centos安裝rocketMQ


 

1.下載安裝包

  http://rocketmq.apache.org/release_notes/

  這里選擇 4.4.0 版本,點擊進去

    

 

 

   可以選擇源碼包或者二進制文件,這里選擇二進制文件(ps:如果選擇源碼包,需要自行編譯,編譯需要maven環境)

    

 

 

   右鍵 binary 文件鏈接,“復制鏈接地址”,然后到Linux目錄下(本例:/usr/local/server/rocketmq)

    wget https://archive.apache.org/dist/rocketmq/4.4.0/rocketmq-all-4.4.0-bin-release.zip

2.解壓

  unzip rocketmq-all-4.4.0-bin-release.zip

    如果報錯 unzip: command not found,則先安裝unzip工具:

      yum install zip unzip

3.啟動

  cd rocketmq-all-4.4.0-bin-release

  3.1.創建日志目錄

    mkdir log

  3.2.運行 os.sh

    sh bin/os.sh

  3.3.啟動 nameser

    nohup sh bin/mqnamesrv >>log/namesrv.log &

      

 

 

   3.4.啟動 broker

    nohup sh bin/mqbroker >>log/broker.log &

      

 

 

   3.5.查看進程

    ps -ef|grep java

      

 

 

 

4.發送和接收消息

  4.1.在發送和接收消息之前,我們需要將 name servers 的位置告訴客戶端。rocketMQ提供很多方式來實現這個目的,為了簡單起見,我們使用環境變量 NAMESRV_ADDR 來實現(這一段是翻譯官網說明):

    export NAMESRV_ADDR=localhost:9876

  4.2.創建生產者:

    sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

    

 

 

     4.2.1.從日志中看到,出錯了。問題可能原因

      4.2.1.1. broker 沒有正確連接到 name server,檢查方式:

        sh bin/mqadmin clusterList -n localhost:9876

      4.2.1.2. Producer 沒有正確連接到 name server,需要檢查防火牆

        執行關閉防火牆后重試:systemctl stop firewalld.service

      4.2.1.3. 沒有手動創建 topic,也沒有在啟動 broker 時指定允許自動創建。

        手動創建方式:sh bin/mqadmin updateTopic -b 127.0.0.1:10911 -t TopicTest

        自動創建方式,啟動 broker時指定參數 autoCreateTopicEnable=true,如:nohup sh bin/mqbroker >>log/broker.log autoCreateTopicEnable=true &

 

      本例 4.2.1.1.檢查結果:

        

 

 

       可以看到,結果內容為空,說明確實是 broker 沒有連接到 namesrv。回顧我們剛剛的啟動過程,是先執行了啟動命令,后執行 export 環境變量的,會不會是這個問題?那我們先使用 5. 中的命令停止 namesrv 和 broker 進程,重新啟動試試。

        sh bin/mqshutdown broker

        sh bin/mqshutdown namesrv

        nohup sh bin/mqnamesrv >>log/namesrv.log &

        nohup sh bin/mqbroker >>log/broker.log &

      結果:

        

 

 

       可以看到,這下有結果了,那么我們繼續來創建生產者:

        sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

 

 

       可以看到,執行成功了,並且發送了很多消息

  4.3.創建消費者

    sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer  

 

 

     OK,消費者也接收到消息了。     

5.停止

  5.1.停止 broker

    sh bin/mqshutdown broker

  5.2.停止 namesrv

    sh bin/mqshutdown namesrv

 6.回顧

  在4.2.中執行生產者的時候出錯了,我們預設了三個可能原因,雖然我們在猜測了第一個原因並重啟之后,問題已經不存在了,但是還有兩個原因。第二個原因其實跟第一個根本原因一樣,都是找不到服務地址,因為我們之前並沒有配置。那么第三個呢?我們全程並沒有指定參數允許自動創建 topic 呀。這說明默認配置式允許自動創建的,真好。

7.常用命令  

  查看集群情況 ./mqadmin clusterList -n 127.0.0.1:9876
  查看 broker 狀態 ./mqadmin brokerStatus -n 127.0.0.1:9876 -b 172.20.1.138:10911 (注意換成你的 broker 地址)
  查看 topic 列表 ./mqadmin topicList -n 127.0.0.1:9876
  查看 topic 狀態 ./mqadmin topicStatus -n 127.0.0.1:9876 -t MyTopic (換成你想查詢的 topic)
  查看 topic 路由 ./mqadmin topicRoute -n 127.0.0.1:9876 -t MyTopic

  另外,在安裝目錄的 bin 目錄下有一個文件 README.md,記載了啟動、停止、創建主題、創建訂閱組等基本命令。以后再使用的過程中,可以將自己用到的一些其它命令也寫到文件里面去。以備忘和查閱。

8.安裝可視化管理台

  rocketmq-externals

  8.1.github源碼下載:https://github.com/apache/rocketmq-externals

  8.2.指定你的 rocketmq服務的地址

    修改 rocketmq-console 模塊的 application.properties文件,里面的配置項 rocketmq.config.namesrvAddr(不修改則使用環境變量 NAMESRV_ADDR),如本例是:localhost:9876,也可以不配置(因為本例的服務端口就是默認並且配置了環境變量)。

  8.3.修改管理台程序的服務端口

    server.port = 8580

  8.4.打包

    idea打開項目,然后在終端執行:

      cd rocketmq-console

      mvn clean package -Dmaven.test.skip=true

  8.5.將打包得到的jar包上傳服務器

    /usr/local/server/rocketmq

  8.6.登錄服務器,啟動

    cd /usr/local/server/rocketmq/

    mkdir admin

    mv rocketmq-console-ng-1.0.1.jar admin

    cd admin

    mkdir log

    nohup java -jar rocketmq-console-ng-1.0.1.jar >>log/boot.log &

  8.7.開放服務器 8580 端口,或者配置 nginx 域名解析,開放外網訪問。

  8.8.結果

 

 9.監聽外網

  上述整個過程中,講述的都是基於local的服務。假如我們在阿里雲服務器上經過上述配置,然后我們在本地啟動一個rocketmq producer,發現還是發送不成功。這是因為服務綁定在本地網卡 ip 上,也就是 127.0.0.1。將服務綁定到外網的方法:

    9.1.修改環境變量:export NAMESRV_ADDR=公網IP:9876

    9.2.啟動namesrv:nohup sh bin/mqnamesrv -n 公網IP:9876 >>log/namesrv.log &

    9.3.修改broker配置文件,conf/broker.conf,添加一行

      brokerIP1=公網IP

    9.4.啟動 broker:nohup sh bin/mqbroker -n 公網IP:9876 -c conf/broker.conf autoCreateTopicEnable=true >>log/broker.log &

 

10.參考

  10.1.在4.2.中報錯問題排查參考:https://blog.csdn.net/jiangyu1013/article/details/81478754

  10.2.在7.中常用命令朱安轉抄:https://blog.csdn.net/shiloh_my/article/details/82977584

  10.3.管理台安裝參考:https://www.cnblogs.com/buyige/p/9437054.html

  10.4.綁定外網配置參考:https://blog.csdn.net/lw5885799/article/details/88646051


免責聲明!

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



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