首先安装好docker+docker-compose
172.18.10.50/172.18.10.13
1、创建rocketMq目录,我这里创建在/data/rocketMq
/rocketmq ├── compose # Docker-compose文件 ├── data # 持久化数据 │ ├── nameServer # NameServer1数据 │ ├── broker-a-master # BrokerA主节点 │ └── broker-b-slave # BrokerB从节点 ├── logs # 组件日志 │ ├── nameServer │ ├── broker │ └── proxy └── config # 配置文件├── broker-a.conf # BrokerA配置└── broker-b.conf # BrokerB配置
直接创建目录
sudo mkdir -p /data/rocketMq/{compose,data,logs,config}
sudo mkdir -p /data/rocketMq/data/{nameServer,broker-a-master,broker-b-slave}
sudo mkdir -p /data/rocketMq/logs/{nameServer,broker,proxy}
sudo chmod -R 777 /data/rocketMq/
2、创建Docker Compose部署文件
节点1(172.18.10.50)docker-compose.yml

network_mode: hostvolumes:- /data/rocketMq/data/broker-a-master:/home/rocketmq/store- /data/rocketMq/logs/broker:/home/rocketmq/logs- /data/rocketMq/config/broker-a.conf:/home/rocketmq/conf/broker.confcommand: sh mqbroker -c /home/rocketmq/conf/broker.confenvironment:- JAVA_OPT_EXT=-Xms4g -Xmx4g -Xmn2g- NAMESRV_ADDR=172.18.10.50:9876;172.18.10.13:9876depends_on:- namesrv1# BrokerB从节点 broker-b-slave:image: apache/rocketmq:5.3.2container_name: rmq-broker-b-slavenetwork_mode: hostvolumes:- /data/rocketMq/broker-b-slave:/home/rocketmq/store- /data/rocketMq/logs/broker:/home/rocketmq/logs- /data/rocketMq/config/broker-b.conf:/home/rocketmq/conf/broker.confcommand: sh mqbroker -c /home/rocketmq/conf/broker.confenvironment:- JAVA_OPT_EXT=-Xms4g -Xmx4g -Xmn2g- NAMESRV_ADDR=172.18.10.50:9876;172.18.10.13:9876depends_on:- namesrv1# Proxy节点1 proxy1:image: apache/rocketmq:5.3.2container_name: rmq-proxy1network_mode: hostvolumes:- /data/rocketMq/logs/proxy:/home/rocketmq/logscommand: sh mqproxyenvironment:- NAMESRV_ADDR=172.18.10.50:9876;172.18.10.13:9876- PROXY_CLUSTER_NAME=DefaultProxyClusterdepends_on:- broker-a-master- broker-b-slave# Dashboard控制台dashboard:image: apacherocketmq/rocketmq-dashboard:latestcontainer_name: rocketmq-dashboardports:- "28080:8080"environment:- NAMESRV_ADDR=172.18.10.50:9876;172.18.10.13:9876restart: always
节点1(172.18.10.13)docker-compose.yml

- NAMESRV_ADDR=172.18.10.50:9876;172.18.10.13:9876depends_on:- namesrv2# Proxy节点2proxy2:image: apache/rocketmq:5.3.2container_name: rmq-proxy2network_mode: hostvolumes:- /data/rocketmq/logs/proxy:/home/rocketmq/logscommand: sh mqproxyenvironment:- NAMESRV_ADDR=172.18.10.50:9876;172.18.10.13:9876- PROXY_CLUSTER_NAME=DefaultProxyClusterdepends_on:- broker-b-master- broker-a-slave
3、Broker配置文件
broker-a.conf
(主/从共用)

# 集群名称 brokerClusterName=DefaultCluster # Broker名称(主从需一致) brokerName=broker-a # BrokerID(0=主节点,非0=从节点) brokerId=0# 主节点配置 brokerRole=ASYNC_MASTER flushDiskType=ASYNC_FLUSH# 存储路径 storePathRootDir=/home/rocketmq/store storePathCommitLog=/home/rocketmq/store/commitlog# HA配置 haListenPort=10912 haMasterAddress=172.18.10.50:10911# 网络配置 listenPort=10911 brokerIP1=172.18.10.50
broker-b.conf
(主/从共用)

brokerClusterName=DefaultCluster brokerName=broker-b brokerId=0brokerRole=ASYNC_MASTER flushDiskType=ASYNC_FLUSHstorePathRootDir=/home/rocketmq/store storePathCommitLog=/home/rocketmq/store/commitloghaListenPort=10912 haMasterAddress=172.18.10.51:10911listenPort=10911 brokerIP1=172.18.10.51
4. 启动两台服务器集群
cd /data/rocketMq/compose
docker-compose up -d
最后验证