Docker Compose 部署 RocketMQ

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、Docker Compose 部署 RocketMQ
  • 二、部署步骤
    • 1. `rocketmq-docker-compose.yml` 配置内容如下
    • 2.`.env` 环境变量配置
    • 3.`broker.conf`配置内容如下
    • 4. 配置完成后目录结构如下
    • 5. 启动服务
    • 6.打开浏览器访问`rocketmq-dashboard`进行主题等相关配置
    • 7.注意事项


前言

Apache RocketMQ(前身为Aliyun OpenSearch)是一个开源的消息中间件,最初由阿里巴巴开发,后来贡献给了Apache软件基金会,成为了一个Apache顶级项目。RocketMQ用于分布式消息传递,旨在支持低延迟、高吞吐量和可靠性的消息传递。

一、Docker Compose 部署 RocketMQ

涉及容器:

  • rocketmq-broker
  • rocketmq-namesrv
  • rocketmq-dashboard

二、部署步骤

1. rocketmq-docker-compose.yml 配置内容如下

version: "5.0"
services:

  namesrv:
    image: apache/rocketmq:${ROCKETMQ_VERSION}
    hostname: namesrv
    container_name: rocketmq-namesrv
    ports:
      - 9876:9876
    volumes:
      - .\data\namesrv\logs:/home/rocketmq/logs
    command: sh mqnamesrv
    restart: on-failure
    networks:
      - network

  broker:
    image: apache/rocketmq:${ROCKETMQ_VERSION}
    hostname: broker
    container_name: rocketmq-broker
    ports:
      - 10909:10909
      - 10911:10911
      - 10912:10912
    volumes:
      - .\data\broker\logs:/home/rocketmq/logs
      - .\data\broker\store:/home/rocketmq/store
      - .\data\broker\conf\broker.conf:/home/rocketmq/conf/broker.conf
    command: sh mqbroker -n namesrv:9876 -c /home/rocketmq/conf/broker.conf
    restart: on-failure
    networks:
      - network
    depends_on:
      - namesrv

  dashboard:
    image: apacherocketmq/rocketmq-dashboard:${ROCKETMQ_DASHBOARD_VERSION}
    container_name: rocketmq-dashboard
    hostname: dashboard
    ports:
      - 8080:8080
    environment:
      - JAVA_OPTS=-Drocketmq.namesrv.addr=[宿主IP]:9876
    restart: on-failure
    networks:
      - network

networks:
  network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.20.0.0/16

2..env 环境变量配置

ROCKETMQ_VERSION=5.1.4
ROCKETMQ_DASHBOARD_VERSION=1.0.0

3.broker.conf配置内容如下

请放置在 rocketmq-docker-compose.yml 挂载配置的目录下!

brokerClusterName = cluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
# 注意,宿主IP是你计算机网卡的IP
brokerIP1 = [宿主IP]

4. 配置完成后目录结构如下

Docker Compose 部署 RocketMQ_第1张图片

5. 启动服务

在命令窗口切换路径到 rocketmq-docker-compose.yml 目录下,输入下面的启动命令

docker compose -f rocketmq-docker-compose.yml up
# 后台运行
docker compose -f rocketmq-docker-compose.yml up -d

6.打开浏览器访问rocketmq-dashboard进行主题等相关配置

http://127.0.0.1:8080

7.注意事项

  • 亲测,windows 不存在此问题,而 linux debian12 映射路径时,最后一级目录需要修改权限为 允许其他用户读写执行(7),可以设置 777 或667 和 557 都可以,如果不设置权限,broker 容器运行报错,使用root用户执行仍旧报错,如图所示
    Docker Compose 部署 RocketMQ_第2张图片
  • 修改权限目录结构
    Docker Compose 部署 RocketMQ_第3张图片

你可能感兴趣的:(rocketmq,docker,docker,rocketmq,容器)