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
View Code

节点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
View Code

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
View Code

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
View Code

4. 启动两台服务器集群

cd /data/rocketMq/compose
docker-compose up -d

最后验证

 

image

 

posted @ 2025-07-28 10:22  韦邦杠  阅读(151)  评论(0)    收藏  举报