Docker部署RocketMQ5.2.0集群

简介: 本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。

Docker部署RocketMQ 5.2.0集群

Apache RocketMQ 是一款分布式消息中间件,广泛应用于高并发和高可靠性场景中。本文将详细介绍如何使用Docker部署RocketMQ 5.2.0集群。

一、环境准备

在开始之前,确保已在系统中安装了Docker和Docker Compose。

  1. 安装Docker:

  2. 安装Docker Compose:

二、Docker部署RocketMQ

2.1 创建Docker Compose配置文件

在工作目录下创建 docker-compose.yml文件,并添加以下内容:

version: '3.8'

services:
  namesrv:
    image: apache/rocketmq:5.2.0
    container_name: rmqnamesrv
    ports:
      - "9876:9876"
    volumes:
      - ./data/logs:/home/rocketmq/logs
      - ./data/store:/home/rocketmq/store
    command: sh mqnamesrv
    healthcheck:
      test: ["CMD", "nc", "-z", "localhost", "9876"]
      interval: 30s
      timeout: 10s
      retries: 3

  broker:
    image: apache/rocketmq:5.2.0
    container_name: rmqbroker
    ports:
      - "10911:10911"
      - "10909:10909"
    volumes:
      - ./data/logs:/home/rocketmq/logs
      - ./data/store:/home/rocketmq/store
      - ./conf/broker.conf:/home/rocketmq/rocketmq-5.2.0/conf/broker.conf
    environment:
      - "JAVA_OPT_EXT=-server -Xms512m -Xmx512m -Xmn128m"
      - "JAVA_OPT=-Duser.home=/home/rocketmq"
    depends_on:
      - namesrv
    command: sh mqbroker -c /home/rocketmq/rocketmq-5.2.0/conf/broker.conf
    healthcheck:
      test: ["CMD", "nc", "-z", "localhost", "10911"]
      interval: 30s
      timeout: 10s
      retries: 3
​

2.2 创建Broker配置文件

在工作目录下创建 conf目录,并在其中创建 broker.conf文件,添加以下内容:

brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
namesrvAddr=rmqnamesrv:9876
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
​

2.3 启动RocketMQ集群

在工作目录下执行以下命令,启动RocketMQ集群:

docker-compose up -d
​

2.4 验证RocketMQ集群

使用以下命令查看容器状态,确保所有容器都正常启动:

docker-compose ps
​

输出示例:

       Name                      Command               State                         Ports
-------------------------------------------------------------------------------------------------------
rmqbroker            sh mqbroker -c /home/rocketm ...   Up      10909/tcp, 0.0.0.0:10911->10911/tcp
rmqnamesrv           sh mqnamesrv                       Up      0.0.0.0:9876->9876/tcp
​

2.5 访问RocketMQ控制台(可选)

为了方便管理和监控RocketMQ集群,可以部署RocketMQ控制台。创建一个新的 docker-compose服务:

services:
  mqadmin:
    image: pangliang/rocketmq-console-ng
    container_name: mqadmin
    ports:
      - "8080:8080"
    environment:
      JAVA_OPTS: "-Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
    depends_on:
      - namesrv
      - broker
​

docker-compose.yml文件中添加上述配置并执行:

docker-compose up -d mqadmin
​

然后可以通过浏览器访问 http://localhost:8080来访问RocketMQ控制台。

三、总结

本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
kde
|
20天前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
kde
467 4
|
19天前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
83 5
|
2月前
|
存储 Docker Python
docker 部署 sftp
本文介绍SFTP服务的部署与配置,包括users.conf用户配置规则、Docker容器运行命令及上传目录权限说明,重点解析atmoz/sftp镜像的chroot机制与子目录映射,确保用户登录后正确访问/upload目录,并提供Python脚本实现文件上传示例。
148 12
docker 部署 sftp
|
2月前
|
运维 Linux 数据库
基于 Docker 部署 n8n 指南,新手一看就会
本教程详解如何通过 Docker 快速部署开源自动化工具 n8n,适合新手快速上手。内容涵盖官方部署步骤、常见难点及第三方一键部署方案,助你高效搭建自动化工作流平台。
825 6
kde
|
1月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
kde
521 7
|
1月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
261 5
kde
|
1月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
kde
1315 8
kde
|
1月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
kde
310 4
|
2月前
|
前端开发 JavaScript 应用服务中间件
在Docker部署的前端应用中使用动态环境变量
以上步骤展示了如何在 Docker 配置过程中处理并注入环墨遁形成可执行操作流程,并确保最终用户能够无缝地与之交互而无须关心背后复杂性。
155 13

热门文章

最新文章