組件版本
系統:Windows 11
Docker version 28.5.1, build e180ab8
WSL 2
步驟
步驟 1:拉取所需鏡像
# 拉取RocketMQ核心鏡像(包含NameServer和Broker)
docker pull apache/rocketmq:5.3.3
# 拉取RocketMQ管理控制枱鏡像
docker pull styletang/rocketmq-console-ng:latest
步驟 2:創建本地目錄與配置文件
1 創建目錄
# 創建NameServer和Broker的日誌、數據目錄
mkdir -p D:\home\rocketmq\namesrv\logs
mkdir -p D:\home\rocketmq\namesrv\store
mkdir -p D:\home\rocketmq\broker\logs
mkdir -p D:\home\rocketmq\broker\store
mkdir -p D:\home\rocketmq\broker\conf
也可手動在資源管理器中創建上述目錄(路徑:D:\home\rocketmq\...)。
2 配置 Broker
在 D:\home\rocketmq\broker\conf 目錄下創建 broker.conf 文件(可用記事本編輯),內容如下:
# Broker名稱(集羣模式統一)
brokerName = broker-a
# Broker ID(0為主節點)
brokerId = 0
# NameServer地址(啓動時會通過環境變量覆蓋,此處為默認)
namesrvAddr = 127.0.0.1:9876
# Broker對外暴露的IP(**關鍵**:本地測試填宿主機IP,通常為127.0.0.1;若需其他設備訪問,填Windows本機IP,如192.168.1.10)
brokerIP1 = 127.0.0.1
# 存儲路徑(容器內路徑,映射到本地目錄)
storePathRootDir = /home/store
storePathCommitLog = /home/store/commitlog
storePathConsumeQueue = /home/store/consumequeue
storePathIndex = /home/store/index
storeCheckpoint = /home/store/checkpoint
abortFile = /home/store/abort
步驟 3:創建 Docker 網絡(推薦)
docker network create rocketmq-network
步驟 4:啓動 RocketMQ 組件
1. 啓動 NameServer
docker run -d `
--name rmqnamesrv `
--network rocketmq-network `
-p 9876:9876 `
-v D:\home\rocketmq\namesrv\logs:/root/logs `
-v D:\home\rocketmq\namesrv\store:/root/store `
apache/rocketmq:5.3.3 `
sh mqnamesrv
- 參數説明:
-d:後台運行容器。--name rmqnamesrv:容器命名為 rmqnamesrv。--network:加入專用網絡,方便組件通信。-p 9876:9876:映射 NameServer 默認端口(宿主機端口:容器端口)。-v:將 Windows 本地目錄映射到容器內,持久化日誌和數據(注意 Windows 路徑用D:\...格式)。
2. 啓動 Broker
docker run -d `
--name rmqbroker `
--network rocketmq-network `
-p 10911:10911 ` # 客户端通信端口
-p 10909:10909 ` # 主從同步端口
-v D:\home\rocketmq\broker\logs:/root/logs `
-v D:\home\rocketmq\broker\store:/root/store `
-v D:\home\rocketmq\broker\conf\broker.conf:/home/rocketmq/conf/broker.conf ` # 映射配置文件
-e "NAMESRV_ADDR=rmqnamesrv:9876" ` # 關聯NameServer(同一網絡用容器名)
apache/rocketmq:5.3.3 `
sh mqbroker -c /home/rocketmq/conf/broker.conf # 指定配置文件啓動
3. 啓動管理控制枱(可選)
docker run -d `
--name rmqconsole `
--network rocketmq-network `
-p 8080:8080 ` # 控制枱訪問端口
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" `
styletang/rocketmq-console-ng:latest
步驟 5:驗證部署
常見問題與解決
- 確認
rmqconsole與rmqnamesrv在同一網絡(rocketmq-network)。 - 檢查環境變量
NAMESRV_ADDR是否正確(rmqnamesrv:9876)。
- 確認
broker.conf中brokerIP1為127.0.0.1(本地測試)或 Windows 本機 IP(如192.168.1.10,可通過ipconfig查看)。 - 檢查 Windows 防火牆是否開放
9876、10911端口(允許入站規則)。