docker compose部署单机RocketMQ

194 阅读2分钟

RocketMQ官网部署文档

一、docker compose文件

  1. vi rocketMq.yml加入以下内容
services:  
  namesrv:  
    image: apache/rocketmq:5.3.1  
    container_name: rmqnamesrv  
    ports:  
      - 9876:9876  
    restart: always  
    volumes:  
      - /srv/rocketmq/sever/logs:/opt/logs  
      - /srv/rocketmq/sever/store:/opt/store  
    networks:  
      - mq-n  
    command: sh mqnamesrv  
    logging:  
      driver: "json-file"  
      options:  
        max-size: "20m"  
        max-file: "3"   
    deploy:  
      resources:  
        limits:  
          cpus: '1.0'  # 限制资源  
          memory: 1g    
  broker:  
    image: apache/rocketmq:5.3.1  
    container_name: rmqbroker  
    ports:  
      - 10909:10909  
      - 10911:10911  
      - 10912:10912  
    restart: always  
    volumes:  
      - /srv/rocketmq/broker/logs:/opt/logs  
      - /srv/rocketmq/broker/store:/opt/store  
      - /srv/rocketmq/broker/conf/broker.conf:/etc/rocketmq/broker.conf  
    environment:  
      - NAMESRV_ADDR=rmqnamesrv:9876  
      - JAVA_OPTS=" -Duser.home=/opt -Xms1g -Xmx1g"  
    depends_on:  
      - namesrv  
    networks:  
      - mq-n  
    command: sh mqbroker -c /etc/rocketmq/broker.conf  
    logging:  
      driver: "json-file"  
      options:  
        max-size: "20m"  
        max-file: "3"   
    deploy:  
      resources:  
        limits:  
          cpus: '1.0'  # 限制资源  
          memory: 2g    
  proxy:  
    image: apache/rocketmq:5.3.1  
    container_name: rmqproxy  
    networks:  
      - mq-n  
    depends_on:  
      - broker  
      - namesrv  
    ports:  
      - 8080:8080  
      - 8081:8081  
    restart: always  
    environment:  
      - NAMESRV_ADDR=rmqnamesrv:9876  
    command: sh mqproxy  
    logging:  
      driver: "json-file"  
      options:  
        max-size: "20m"  
        max-file: "3"   
    deploy:  
      resources:  
        limits:  
          cpus: '1.0'  # 限制资源  
          memory: 512m    
  dashboard:  
    image: registry.cn-hangzhou.aliyuncs.com/jeecgdocker/rocketmq-dashboard:latest  
    container_name: mqdashboard  
    ports:  
      - 80:8080  
    restart: always  
    environment:  
      - JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876  
    depends_on:  
      - namesrv  
    networks:  
      - mq-n  
    logging:  
      driver: "json-file"  
      options:  
        max-size: "20m"  
        max-file: "3"   
    deploy:  
      resources:  
        limits:  
          cpus: '1.0'  # 限制资源  
          memory: 512m    
  
  
networks:  
  mq-n:  
    driver: bridge

二、broker.conf配置

  1. 创建文件夹mkdir -p /srv/rocketmq/broker/conf
  2. vi /srv/rocketmq/broker/conf/broker.conf加入以下内容。
  3. 给对应文件权限chmod -R 766 /srv/rocketmq/
# 集群名称  
brokerClusterName = DefaultCluster  
# broker 名字  
brokerName = broker-a  
# 0表示master,>0 表示slave  
brokerId = 0  
# 删除文件的时间点  
deleteWhen = 04  
# 文件保留时间  
fileReservedTime = 48  
# Broker 的角色  
# # - ASYNC_MASTER 异步复制Master  
# # - SYNC_MASTER 同步双写Master  
# # - SLAVE  
brokerRole = ASYNC_MASTER  
# 刷盘方式  
# # - ASYNC_FLUSH 异步刷盘  
# # - SYNC_FLUSH 同步刷盘  
flushDiskType = ASYNC_FLUSH  
  
# nameserver地址  
namesrvAddr=192.168.31.167:9876  
brokerIP1=192.168.31.167

4. 启动容器 docker compose -f ./rocketMq.yml up -d

  1. 访问http://ip/进入面板

image.png

至此单机的rocketMQ部署完毕。