參考
https://www.jianshu.com/p/0de7857deb27
一、下載及安裝RocketMQ
可以直接去官網下載,也可以從我的百度雲直接拿tar包。
鏈接: https://pan.baidu.com/s/1nEEM-k4YWJAMbjjoEeysiw 提取碼: n5f2
然後通過類似於Xftp這樣的文件上傳工具,將包上傳到Centos7系統的某個目錄下
使用tar -xzvf rocketmq-4.6.1.tar.gz
命令解壓即可。
二、啓動nameServer和broker
這兩個是RocketMQ的核心組件,消息是放到broker中的,而怎麼知道放到哪一個broker中,生產者需要去請求nameServer。所以我們要啓動這兩個組件纔可以使用RocketMQ。RocketMQ 原理
進入到剛纔解壓的bin目錄
使用nohup sh mqnamesrv &
命令啓動nameServer
使用nohup sh mqbroker -n localhost:9876 &
命令啓動broker
我們可以通過jps
來查看是否啓動成功,如果像下圖一樣,Broker和NameServer都啓動,即代表啓動成功
如果上面的BrokerStartup沒有啓動成功,代表系統的內存不太夠,需要改小一點。
在bin目錄下,vi runServer.sh
命令進行編輯,
並且,vi runbroker.sh
命令進行編輯,同樣將內存改小一些。
配置完成後,重啓啓動broker,如果仍舊啓動不了,則需要重啓nameServer,再啓動broker.
關閉nameServer的命令是: sh mqshutdown namesrv
測試生產者生產消息
在bin目錄下,執行如下命令
export NAMESRV_ADDR=localhost:9876
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
可以看到,生產者把很多消息發送出去了。
發到哪了呢?發到了broker中,而且還未被消費。
測試消費者消費消息
爲了對比,我們開啓第二個連接窗口進行消息的消費
在bin目錄下,執行如下命令
export NAMESRV_ADDR=localhost:9876
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
可以看到消費者消費了消息。
RocketMQ可視化工具
如果你使用過RabbitMQ,你一定看到過安裝成功時,輸入網址即可打開一個可視化的界面。
RocketMQ社區也提供這樣的一個工具,只不過我們需要自己安裝一下。
下載這個工具我們需要git,因爲這個工具是在github上開源的,我們使用git clone
會方便很多,需要注意的是,我們克隆github項目比較慢,不過國內碼雲也放了這個項目,所以我們也可以直接從碼雲上直接克隆。
-
安裝git: 使用
yum install git
安裝git即可。 -
安裝maven:使用
yum install maven
安裝maven即可。 -
克隆項目: 進入到你想安裝的目錄,使用
git clone https://gitee.com/mirrors/RocketMQ-Externals.git
命令克隆即可,例如我選擇的是rocketmq-4.6.1的同級目錄。
由於使用的是碼雲,速度很快
-
進入資源路徑,修改配置
cd RocketMQ-Externals/rocketmq-console/src/main/resources
vi application.properties
配置nameServer的地址
- 使用
mvn clean package -D maven.test.skip = true
命令進行打包,因爲這個可視化工具也是java寫的
如果出現失敗,多試幾次,實在不行,
我把jar包放到了百度雲, - 鏈接: https://pan.baidu.com/s/10ij7ap8Ix9H4MbtTleJh1Q
- 提取碼: gfer
會新出現一個targer文件夾,進去運行jar包
運行jar包
java -jar rocketmq-console-ng-1.0.1.jar --server.port=8888 --rocketmq.config.namesrvAddr=127.0.0.1:9876
這裏我指定端口爲8888,可以看到項目啓動
啓動後,會出現兩種情況
- 本地訪問ip + 端口 拒絕訪問,解決方法就是關閉防火牆
Centos 查看防火牆狀態的命令是
systemctl status firewalld.service
Centos關閉防火牆的命令是
systemctl stop firewalld.service
開啓防火牆的命令是
systemctl start firewalld.service
- 訪問成功