RocketMQ、dashboard部署以及安全設置
- 一、啟動RocketMQ
- 1.1 下載RocketMQ
- 1.2 修改配置文件
- 1.2.1 修改nameServer Jvm內存配置
- 1.2.2 修改broker參數
- 1.3 啟動
- 1.3.1 啟動NameServer
- 1.3.2 啟動Broker
- 1.3.3 測試是否啟動成功
- 1.3.3.1 測試消息發送
- 1.3.3.2 測試消息接收
- 1.3.3.3 Java程序發送消息
- 1.3.4 關閉NameServer和broker
- 1.3.5 匯總啟動腳本
- 二、啟動RocketMQ Dashboard
- 2.1 下載Dashboard源碼
- 2.2 Maven打包
- 2.3 上傳到Linux服務器
- 2.4 啟動Dashboard
- 2.5 訪問面板
- 三、設置密碼
- 3.1 RocketMQ配置密碼
- 3.1.1 開啟acl控制
- image-202308142305488723.1.2 配置賬號密碼
- 3.2 配置面板中的密碼
- 3.2.1 在dashboard.jar包同級目錄創建config文件夾
- 3.2.2 上傳application.properties
- 3.2.3 修改application.properties
- 3.2.4 重啟dashboard
- 3.3 面板開啟賬號密碼
- 3.3.1 開啟賬號密碼訪問
- 3.3.2 修改賬號密碼
- 3.3.3 修改默認用戶配置文件路徑
- 3.3.4 重啟dashboard
一、啟動RocketMQ
1.1 下載RocketMQ
RocketMQ安裝包下載地址:https://rocketmq.apache.org/download
在/opt文件夾下建立rocketmq文件夾,存放rocketmq相關文件
cd /opt
mkdir rocketmq
cd rocketmq/
復制RocketMQ下載路徑
以當前最新版:5.1.3為例,下載鏈接為:https://dist.apache.org/repos/dist/release/rocketmq/5.1.3/rocketmq-all-5.1.3-bin-release.zip
使用wget直接下載到當前路徑
wget https://dist.apache.org/repos/dist/release/rocketmq/5.1.3/rocketmq-all-5.1.3-bin-release.zip
如果沒有wget,先進行安裝
yum -y install wget
下載成功
使用unzip解壓
unzip rocketmq-all-5.1.3-bin-release.zip
如果沒有unzip,則先安裝
yum install -y unzip zip
查看結果
修改文件夾名字(文件夾名字太長,看著不舒服)
mv rocketmq-all-5.1.3-bin-release rocketmq-5.1.3
至此,RocketMQ相關文件準備工作已完成
1.2 修改配置文件
由于RocketMQ默認配置比較高,我們要根據自己的機器配置調整相關參數。(如果機器配置比較高,可以直接調到1.3 啟動章節)
1.2.1 修改nameServer Jvm內存配置
/opt/rocketmq/rocketmq-5.1.3/bin
vim runserver.sh
修改-Xms4g -Xmx4g -Xmn2g
,三個參數
- Xms 為jvm啟動時分配的內存,比如-Xms512m,表示分配512M
- Xmx 為jvm運行過程中分配的最大內存,比如-Xms512m,表示jvm進程最多只能夠占用512M內存
- Xmn 堆內新生代的大小,-Xmn256m代表新生代大小為256M
在這邊,根據自己的配置,調整為以下參數:
1.2.2 修改broker參數
vim runbroker.sh
- -Xms -Xmx 上面已經說明了
- -XX:MaxDirectMemorySize 用于設置直接內存的最大大小。
根據機器配置,修改為以下:
1.2.3 修改broker配置
cd /opt/rocketmq/rocketmq-5.1.3/conf/
1.3 啟動
1.3.1 啟動NameServer
# 啟動NameServer
sh bin/mqnamesrv &
# 查看日志
tail -f ~/logs/rocketmqlogs/namesrv.log
日志中顯示:The Name Server boot success. serializeType=JSON, address 0.0.0.0:9876
代表已經啟動
1.3.2 啟動Broker
# 在rocketmq-5.1.3目錄啟動Broker,使用conf/broker.conf配置文件
nohup sh bin/mqbroker -c conf/broker.conf -n localhost:9876 &# 查看日志
tail -f ~/logs/rocketmqlogs/proxy.log
1.3.3 測試是否啟動成功
1.3.3.1 測試消息發送
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
成功示例:
1.3.3.2 測試消息接收
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
成功示例:
1.3.3.3 Java程序發送消息
注意linux服務器要開放對應的端口!
Maven項目引入依賴
<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>5.1.1</version>
</dependency>
測試類
public class ASimpleTest {public static void main(String[] args) throws Exception{// 創建一個生產者(指定一個組名)DefaultMQProducer producer = new DefaultMQProducer("test-producer-group");// 連接namersrvproducer.setNamesrvAddr("192.168.1.7:9876");// 啟動producer.start();for (int i = 0; i < 10; i++) {Message testTopic = new Message("testTopic", "我是一個簡單的消息".getBytes());SendResult send = producer.send(testTopic);System.out.println(send.getSendStatus());}producer.shutdown();}
}
輸出:
1.3.4 關閉NameServer和broker
# 關閉broker
sh bin/mqshutdown broker
# 關閉namesrv
sh bin/mqshutdown namesrv
1.3.5 匯總啟動腳本
結合前面的腳本,匯總成一個統一的腳本
創建文件
vim restart.sh
腳本內容
# 關閉broker
sh bin/mqshutdown broker
# 關閉namesrv
sh bin/mqshutdown namesrv
# 啟動namersrv
sh bin/mqnamesrv &
# 啟動broker
nohup sh bin/mqbroker -c conf/broker.conf -n localhost:9876 &
之后,只要執行sh restart.sh
即可快速重啟
至此,RocketMQ的啟動、測試是否啟動以及關閉已經說明完畢
二、啟動RocketMQ Dashboard
RocketMQ Dashboard是一個用于管理和監控Apache RocketMQ消息隊列的Web界面。
2.1 下載Dashboard源碼
RocketMq Dashboard下載地址
下載到本地或者Linux環境(因為我只有本地有Maven,所以下載到Windows環境)
2.2 Maven打包
解壓后,進入文件夾
執行Maven命令,打出對應jar包
mvn clean package
2.3 上傳到Linux服務器
將target
文件夾底下的rocketmq-dashboard-1.0.0.jar
上傳到服務器
2.4 啟動Dashboard
啟動dashboard,指定Dashboard端口為18001
,NameServer地址為127.0.0.1:9876
nohup java -jar rocketmq-dashboard-1.0.0.jar --server.port=18001 --rocketmq.config.namsrvAddr=127.0.0.1:9876 > dashboard.log 2>&1 &
2.5 訪問面板
至此,RocketMQ面板啟動完成。但是在實際使用中,還會對RocketMQ的訪問增加密碼限制,接下來,進行密碼設置
三、設置密碼
3.1 RocketMQ配置密碼
3.1.1 開啟acl控制
在conf/broker.conf
中開啟aclEnable=true
vim conf/broker.conf
在最底下追加
3.1.2 配置賬號密碼
修改conf/plain_acl.yml
重啟NameServer和Broker
重新訪問面板,發現報錯了
3.2 配置面板中的密碼
3.2.1 在dashboard.jar包同級目錄創建config文件夾
3.2.2 上傳application.properties
將項目底下的application.properties上傳到config文件夾下
3.2.3 修改application.properties
將注釋放開,設置對應的賬號密碼
結果:
3.2.4 重啟dashboard
具體操作,參考文章:SpringBoot jar包部署
重新訪問面板,發現可正常訪問
3.3 面板開啟賬號密碼
當前,已經為RocketMQ設置了密碼,但是,還存在問題,操作面板沒有設置密碼,操作面板沒有設置密碼,在實際應用中,也是很危險的。下面講解面板設置密碼:
3.3.1 開啟賬號密碼訪問
修改application.properties
修改為:
rocketmq.config.loginRequired=true
重新訪問,發現需要賬號密碼
賬號密碼配置文件為:users.properties
路徑:
說明:
得知,管理員默認賬號為admin
,密碼為admin
.
3.3.2 修改賬號密碼
將users.properties
上傳到config目錄,修改內容為
3.3.3 修改默認用戶配置文件路徑
修改application.properties
vim application.properties
將其修改為:
rocketmq.config.dataPath=./config
3.3.4 重啟dashboard
重啟后,使用賬號zhangsan
,密碼:123
登錄成功。
至此,RocketMQ部署已經完畢
參考文章:RocketMQ官網快速開始