RocketMq集群docker部署(2主2从+Dashboard)
首先安装好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: host volumes: - /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.conf command: sh mqbroker -c /home/rocketmq/conf/broker.conf environment: - JAVA_OPT_EXT=-Xms4g -Xmx4g -Xmn2g - NAMESRV_ADDR=172.18.10.50:9876;172.18.10.13:9876 depends_on: - namesrv1 # BrokerB从节点 broker-b-slave: image: apache/rocketmq:5.3.2 container_name: rmq-broker-b-slave network_mode: host volumes: - /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.conf command: sh mqbroker -c /home/rocketmq/conf/broker.conf environment: - JAVA_OPT_EXT=-Xms4g -Xmx4g -Xmn2g - NAMESRV_ADDR=172.18.10.50:9876;172.18.10.13:9876 depends_on: - namesrv1 # Proxy节点1 proxy1: image: apache/rocketmq:5.3.2 container_name: rmq-proxy1 network_mode: host volumes: - /data/rocketMq/logs/proxy:/home/rocketmq/logs command: sh mqproxy environment: - NAMESRV_ADDR=172.18.10.50:9876;172.18.10.13:9876 - PROXY_CLUSTER_NAME=DefaultProxyCluster depends_on: - broker-a-master - broker-b-slave # Dashboard控制台 dashboard: image: apacherocketmq/rocketmq-dashboard:latest container_name: rocketmq-dashboard ports: - "28080:8080" environment: - NAMESRV_ADDR=172.18.10.50:9876;172.18.10.13:9876 restart: always
节点1(172.18.10.13)docker-compose.yml
- NAMESRV_ADDR=172.18.10.50:9876;172.18.10.13:9876 depends_on: - namesrv2 # Proxy节点2 proxy2: image: apache/rocketmq:5.3.2 container_name: rmq-proxy2 network_mode: host volumes: - /data/rocketmq/logs/proxy:/home/rocketmq/logs command: sh mqproxy environment: - NAMESRV_ADDR=172.18.10.50:9876;172.18.10.13:9876 - PROXY_CLUSTER_NAME=DefaultProxyCluster depends_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=0 brokerRole=ASYNC_MASTER flushDiskType=ASYNC_FLUSH storePathRootDir=/home/rocketmq/store storePathCommitLog=/home/rocketmq/store/commitlog haListenPort=10912 haMasterAddress=172.18.10.51:10911 listenPort=10911 brokerIP1=172.18.10.51
4. 启动两台服务器集群
cd /data/rocketMq/compose
docker-compose up -d
最后验证

浙公网安备 33010602011771号