Docker Desktop搭建RocketMQ的完整教程

发布于:2025-06-21 ⋅ 阅读:(14) ⋅ 点赞:(0)

Docker Desktop搭建RocketMQ图文教程

1. 准备工作
  • 已安装Docker Desktop(本地安装方法参考上一节教程)。
  • 需部署三个组件:NameServer、Broker、Console(管理界面)。

2. 创建目录和文件
  1. 在任意盘(如D盘)创建以下目录结构:
    D:\rocketmq-docker
    ├── docker-compose.yml
    ├── conf/
    │   └── broker.conf
    ├── logs/
    └── store/
    

3. 编写docker-compose.yml
version: '3.5'
services:
  rmqnamesrv:
    image: foxiswho/rocketmq:server
    container_name: rmqnamesrv
    ports:
      - 9876:9876
    volumes:
      - ./logs:/opt/logs
      - ./store:/opt/store
    networks:
      rmq:
        aliases:
          - rmqnamesrv

  rmqbroker:
    image: foxiswho/rocketmq:broker
    container_name: rmqbroker
    ports:
      - 10909:10909
      - 10911:10911
    volumes:
      - ./logs:/opt/logs
      - ./store:/opt/store
      - ./conf/broker.conf:/etc/rocketmq/broker.conf
    environment:
      NAMESRV_ADDR: "rmqnamesrv:9876"
      JAVA_OPTS: " -Duser.home=/opt"
      JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
    command: mqbroker -c /etc/rocketmq/broker.conf
    depends_on:
      - rmqnamesrv
    networks:
      rmq:
        aliases:
          - rmqbroker

  rmqconsole:
    image: styletang/rocketmq-console-ng
    container_name: rmqconsole
    ports:
      - 8090:8080  # 管理界面端口可自定义
    environment:
      JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
    depends_on:
      - rmqnamesrv
    networks:
      rmq:
        aliases:
          - rmqconsole

networks:
  rmq:
    name: rmq
    driver: bridge

4. 配置broker.conf

conf/broker.conf中写入以下内容(关键修改项已标粗):

# 集群名称
brokerClusterName=DefaultCluster
# Broker名称(Master/Slave需不同)
brokerName=broker-a
# 0表示Master
brokerId=0
# 宿主机IP(必须修改!)
brokerIP1=你的本机IP  # 或通过hosts映射域名(如www.xiong.com)
# 自动创建Topic(线上建议关闭)
autoCreateTopicEnable=true
# 自动创建订阅组
autoCreateSubscriptionGroup=true
# 监听端口
listenPort=10911
# 刷盘方式(ASYNC_FLUSH或SYNC_FLUSH)
flushDiskType=ASYNC_FLUSH

5. 启动RocketMQ
  1. docker-compose.yml所在目录执行:
    docker-compose up -d
    
  2. 检查容器是否正常运行(通过Docker Desktop或docker ps)。

6. 访问管理界面
  • 浏览器打开:http://localhost:8090(或自定义的端口)。
  • 若配置了域名(如www.xiong.com),则访问:http://www.xiong.com:8090

7. 注意事项
  1. IP问题brokerIP1必须设置为宿主机IP,否则生产者/消费者可能无法连接。
  2. 资源限制:默认JVM内存为128MB,可根据需求调整JAVA_OPT_EXT参数。
  3. 数据持久化logsstore目录用于持久化数据,避免容器重启丢失。

常见问题

  • 连接失败:检查brokerIP1是否配置正确,或尝试在代码中禁用VIP通道:
    producer.setVipChannelEnabled(false);
    
  • 端口冲突:修改docker-compose.yml中的端口映射(如9876、10911、8090)。

按此步骤即可完成RocketMQ的Docker部署!


网站公告

今日签到

点亮在社区的每一天
去签到