# 创建数据目录
mkdir -p /data/rocketmq/nameserver/{logs,store}

mkdir -p /data/rocketmq/data/broker/{logs,store} /data/rocketmq/conf

vi /data/rocketmq/conf/broker.conf
# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = DefaultCluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
# 设置broker节点所在服务器的ip地址
brokerIP1 = 192.168.23.132
# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95
services:
  # ----------------------
  # RocketMQ NameServer
  # ----------------------
  namesrv:
    image: rocketmqinc/rocketmq
    container_name: rmqnamesrv
    privileged: true
    ports:
      - "9876:9876"
    environment:
      - MAX_POSSIBLE_HEAP=100000000
    networks:
      - rocketmq
    command: sh mqnamesrv
    volumes:
      - /data/rocketmq/nameserver/logs:/root/logs
      - /data/rocketmq/nameserver/store:/root/store
    restart: always

  # ----------------------
  # RocketMQ Broker
  # ----------------------
  broker:
    image: rocketmqinc/rocketmq
    container_name: rmqbroker
    privileged: true
    depends_on:
      - namesrv
    ports:
      - "10909:10909"
      - "10911:10911"
      - "10912:10912"
    environment:
      - NAMESRV_ADDR=rmqnamesrv:9876
      - MAX_POSSIBLE_HEAP=200000000
    networks:
      - rocketmq
    volumes:
      - /data/rocketmq/data/broker/logs:/root/logs
      - /data/rocketmq/data/broker/store:/root/store
      - /data/rocketmq/conf/broker.conf:/opt/rocketmq/conf/broker.conf
    command: sh mqbroker -c /opt/rocketmq/conf/broker.conf
    restart: always

  # ----------------------
  # RocketMQ Dashboard
  # ----------------------
  dashboard:
    image: apacherocketmq/rocketmq-dashboard:latest
    container_name: rmqdashboard
    depends_on:
      - namesrv
    ports:
      - "8082:8082"
    environment:
      - JAVA_OPTS=-Drocketmq.namesrv.addr=rmqnamesrv:9876
    networks:
      - rocketmq
    restart: always

networks:
  rocketmq:
    driver: bridge
作者:admin  创建时间:2025-12-05 18:17
最后编辑:admin  更新时间:2025-12-07 15:54