专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题轩辕镜像免费版
其他
关于我们网站地图
热门搜索:
返回博客首页
Apache RocketMQ Docker 容器化部署指南
2025/12/9Docker,Apache RocketMQ轩辕镜像团队约 11 分钟阅读

Apache RocketMQ Docker 容器化部署指南

Apache RocketMQ是一款分布式消息中间件,由Apache软件基金会开发维护,具有高吞吐量、低延迟、高可靠性等特点,广泛应用于分布式系统中的异步通信、流量削峰、系统解耦等场景。随着容器化技术的普及,采用Docker部署RocketMQ可以显著简化环境配置、提高部署一致性和运维效率。

apache-rocketmqdocker部署教程

本文使用的 Docker 镜像

apache/rocketmq

概述

Apache RocketMQ是一款分布式消息中间件,由Apache软件基金会开发维护,具有高吞吐量、低延迟、高可靠性等特点,广泛应用于分布式系统中的异步通信、流量削峰、系统解耦等场景。随着容器化技术的普及,采用Docker部署RocketMQ可以显著简化环境配置、提高部署一致性和运维效率。

本文将详细介绍如何通过Docker容器化方式部署Apache RocketMQ,包括环境准备、镜像拉取、容器部署、功能测试、生产环境优化及故障排查等内容,为用户提供一套完整的容器化部署方案。

环境准备

Docker环境安装

部署RocketMQ容器前,需先确保目标服务器已安装Docker环境。推荐使用以下一键安装脚本快速部署Docker及相关组件:

bash
bash <(wget -qO- https://xuanyuan.cloud/docker.sh)

执行完成后,可通过docker --version命令验证安装是否成功,输出类似Docker version x.x.x, build xxxxxxx即表示安装成功。

镜像准备

拉取ROCKETMQ镜像

使用以下命令通过轩辕镜像访问支持地址拉取最新版本的ROCKETMQ镜像:

bash
docker pull xxx.xuanyuan.run/apache/rocketmq:latest

拉取完成后,可通过以下命令验证镜像是否成功下载:

bash
docker images | grep apache/rocketmq

若输出包含apache/rocketmq及latest标签的记录,则表示镜像准备完成。

容器部署

基础部署命令

RocketMQ通常由NameServer和Broker两个核心组件构成,以下是基础的容器部署命令。

启动NameServer容器

bash
docker run -d \
  --name rocketmq-nameserver \
  -p 9876:9876 \
  -v /data/rocketmq/nameserver/logs:/root/logs \
  -e "MAX_HEAP_SIZE=512m" \
  -e "HEAP_NEWSIZE=128m" \
  xxx.xuanyuan.run/apache/rocketmq:latest \
  sh mqnamesrv

参数说明:

  • -d:后台运行容器
  • --name:指定容器名称为rocketmq-nameserver
  • -p 9876:9876:映射NameServer默认端口(需根据轩辕镜像文档(ROCKETMQ)确认实际端口)
  • -v:挂载日志目录到宿主机,实现数据持久化
  • -e:设置JVM内存参数,可根据服务器配置调整

启动Broker容器

bash
docker run -d \
  --name rocketmq-broker \
  -p 10911:10911 \
  -p 10909:10909 \
  -v /data/rocketmq/broker/logs:/root/logs \
  -v /data/rocketmq/broker/store:/root/store \
  -e "NAMESRV_ADDR=nameserver-ip:9876" \
  -e "MAX_HEAP_SIZE=1024m" \
  -e "HEAP_NEWSIZE=256m" \
  xxx.xuanyuan.run/apache/rocketmq:latest \
  sh mqbroker -c /opt/rocketmq/conf/broker.conf

参数说明:

  • NAMESRV_ADDR:需替换为实际NameServer的IP地址和端口
  • 端口映射:根据轩辕镜像文档(ROCKETMQ)确认Broker的通信端口(如10911为默认监听端口,10909为VIP通道端口)
  • 挂载目录:增加存储目录挂载,确保消息数据持久化

容器状态检查

部署完成后,通过以下命令检查容器运行状态:

bash
# 查看所有RocketMQ相关容器
docker ps --filter "name=rocketmq-"

# 查看容器日志(以Broker为例)
docker logs -f rocketmq-broker

若日志中出现The broker[broker-a, xxx.xxx.xxx.xxx:10911] boot success. serializeType=JSON等类似信息,则表示Broker启动成功。

功能测试

基本连通性测试

  1. 进入Broker容器:
bash
docker exec -it rocketmq-broker sh
  1. 设置NameServer地址:
bash
export NAMESRV_ADDR=nameserver-ip:9876
  1. 发送测试消息:
bash
sh tools.sh org.apache.rocketmq.example.quickstart.Producer

若输出SendResult [sendStatus=SEND_OK, msgId=...等信息,则表示消息发送成功。

  1. 接收测试消息:
bash
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer

若输出ConsumeMessageThread_%d Receive New Messages: [MessageExt...等信息,则表示消息接收成功。

外部访问测试

在宿主机或其他可访问服务器上,通过RocketMQ客户端工具连接部署的服务,验证外部网络连通性。需确保宿主机防火墙已开放相关端口(如9876、10911等)。

生产环境建议

数据持久化

  1. 目录挂载:生产环境中必须挂载日志和存储目录,避免容器重启导致数据丢失:
bash
-v /data/rocketmq/nameserver/logs:/root/logs \
-v /data/rocketmq/nameserver/store:/root/store \  # 若NameServer有持久化需求
-v /data/rocketmq/broker/logs:/root/logs \
-v /data/rocketmq/broker/store:/root/store \
  1. 存储优化:建议使用高性能存储(如SSD)存放Broker的store目录,提升消息读写性能。

资源配置

  1. JVM参数调整:根据服务器配置合理设置JVM内存,避免OOM或资源浪费:
bash
-e "MAX_HEAP_SIZE=4g" \  # 最大堆内存,建议为物理内存的50%
-e "HEAP_NEWSIZE=1g" \   # 新生代内存,建议为最大堆内存的25%
  1. 容器资源限制:使用--memory和--cpus限制容器资源使用,避免资源争抢:
bash
--memory=8g --cpus=4 \

高可用配置

  1. 多节点部署:部署多个NameServer节点(至少3个),避免单点故障。

  2. Broker集群:采用主从架构或Dledger模式部署Broker集群,确保消息可靠性。

  3. 网络隔离:通过Docker网络隔离不同环境(开发/测试/生产),使用自定义网络而非默认bridge网络:

bash
docker network create rocketmq-network
docker run -d --name rocketmq-nameserver --network rocketmq-network ...

安全加固

  1. 容器权限:避免使用root用户运行容器,通过--user指定非特权用户:
bash
--user 1000:1000 \
  1. 配置文件挂载:挂载自定义broker.conf配置文件,启用访问控制、TLS等安全特性:
bash
-v /data/rocketmq/conf/broker.conf:/opt/rocketmq/conf/broker.conf \
  1. 日志轮转:配置宿主机日志轮转策略,避免日志文件过大占用磁盘空间。

故障排查

容器无法启动

  1. 查看启动日志:
bash
docker logs --tail=100 rocketmq-broker  # 查看最近100行日志
  1. 检查端口占用:
bash
netstat -tulpn | grep 9876  # 检查NameServer端口是否被占用
  1. 资源限制检查:若容器因资源不足被系统终止,可通过dmesg | grep -i 'out of memory'查看系统OOM日志。

消息发送/接收失败

  1. NameServer连接检查:确认Broker配置的NAMESRV_ADDR正确,可通过telnet nameserver-ip 9876测试网络连通性。

  2. Broker状态检查:通过RocketMQ控制台或命令行工具查看Broker状态:

bash
sh mqadmin clusterList -n nameserver-ip:9876
  1. 权限配置检查:若启用了ACL,检查生产者/消费者的accessKey和secretKey是否正确。

数据一致性问题

  1. 存储目录权限:检查宿主机挂载目录权限是否正确,确保容器内用户有读写权限:
bash
ls -ld /data/rocketmq/broker/store  # 权限应为755或容器用户可访问
  1. 磁盘空间检查:若磁盘空间不足,可能导致消息写入失败,通过df -h检查磁盘使用情况。

参考资源

  • 轩辕镜像文档(ROCKETMQ)
  • ROCKETMQ镜像标签列表
  • Docker官方文档:Docker Run Reference

总结

本文详细介绍了Apache RocketMQ的Docker容器化部署方案,包括环境准备、镜像拉取、容器部署、功能测试、生产环境优化及故障排查等内容,为快速搭建RocketMQ服务提供了可参考的实践指南。

关键要点:

  • 使用一键脚本快速部署Docker环境,简化前期准备工作
  • 通过轩辕镜像访问支持提升RocketMQ镜像下载访问表现,缩短部署时间
  • 容器部署需注意核心组件(NameServer/Broker)的端口映射和数据持久化配置
  • 生产环境中应重点关注高可用架构、资源配置优化和安全加固

后续建议:

  • 深入学习RocketMQ的集群部署模式(如Dledger主从、多副本等),提升服务可靠性
  • 根据业务场景需求调整Broker配置参数(如消息重试策略、存储策略等)
  • 部署RocketMQ控制台,实现可视化监控和管理
  • 制定完善的运维方案,包括备份策略、扩容机制和故障恢复流程

你可能也想看

Docker 部署 Open WebUI + Ollama 完整教程(Windows / Linux 通用)—— 打造自己的本地OpenAI

无需复杂配置!Docker一键部署Open WebUI+Ollama,Windows/Linux通用,新手也能轻松上手。无需依赖云端,打造专属本地OpenAI,实现可视化聊天交互,兼顾数据隐私,还附带常见问题排查,全程步骤清晰,快速拥有本地大模型平台!

OpenWebUI,Ollama,部署教程,部署方案,一键部署2026年4月23日

给 Hermes Agent 装个可视化面板!Docker 一键部署 Hermes WebUI 完整教程(Windows\+Linux 双环境)

用过 Hermes Agent 的朋友都知道,它的命令行模式虽然功能强大,但对新手和不想敲命令的朋友来说还是有点门槛。好消息是,它的 Web UI 终于来了!不用再对着黑框框敲命令,点一点就能配置、管理和使用,今天就给大家分享一下 Hermes WebUI 的完整部署教程。

Hermes-Agent,部署教程,部署文档2026年4月23日

用 Docker 一键部署 Filestash:打造你的全能 Web 文件管理器

还在为不同存储协议装一堆客户端?SFTP、FTP、WebDAV、S3、云盘……每次都要切换工具,传个文件像“打地鼠”?今天给大家安利一个神器——Filestash,一个开源的 Web 文件管理器,把所有存储协议都收进浏览器里,用 Docker 几分钟就能搭好,运维、开发、日常用都超爽!

Filestash,部署教程,文件管理2026年4月23日

Obsidian Docker 部署|Windows+Linux 通用,新手也能10分钟上手

Obsidian 作为一款备受欢迎的本地知识管理工具,凭借其灵活的笔记链接、本地存储优势,成为很多开发者、知识管理者的首选。而通过 Docker 部署 Obsidian,不仅能实现跨环境快速部署,还能轻松实现数据持久化,适配 NAS、服务器、个人电脑等多种场景。本文将详细介绍 Windows 和 Linux 两大系统下,通过 Docker 部署 Obsidian 的完整流程,同时提供 Docker 一键安装命令,降低部署门槛。

Obsidian,部署教程,笔记软件2026年4月21日

Docker 部署 Hermes Agent 完整指南(Windows / Linux 通用)

Hermes Agent 是 Nous Research 推出的 AI 自主智能体(AI Autonomous Agent),能轻松执行各类复杂任务,比如自动编写代码、执行终端命令、操作浏览器、规划并完成任务,以及进行文件读写和脚本生成,是开发、运维和研究的得力助手。

OpenClaw,AI,Hermes,hermes-agent,部署教程2026年4月20日

2026 年 4 月最新 Docker 镜像源加速列表与使用指南

本文汇总了2026 年 4 月最新可用且稳定的国内Docker镜像加速地址,覆盖Docker、K8s containerd、Podman、nerdctl等主流场景,零基础用户也能按步骤完成配置。

Docker,镜像源,轩辕镜像2026年4月4日

免责声明

本博客文章所提供的内容、技术方案、配置示例及部署指南等信息,仅供学习交流和技术参考使用。文章内容基于发布时的技术环境和版本信息编写,可能因时间推移、技术更新或环境差异而存在不适用的情况。

用户在参考本博客内容进行部署操作前,应当充分了解相关技术风险,并建议在测试环境中进行充分验证和测试,确认无误后再考虑在生产环境中使用。生产环境部署前,请务必进行数据备份,并制定相应的回滚方案。

用户因使用本博客内容进行部署操作而产生的任何损失、数据丢失、系统故障、安全风险或其他问题,均由用户自行承担全部责任。轩辕镜像官方不对因使用本博客内容而产生的任何直接或间接损失承担责任。

本免责声明的最终解释权归轩辕镜像官方所有。

最后更新:2025/12/9
轩辕镜像
博客公告
...
apache-rocketmq-docker
博客Docker 镜像公告与技术博客
热门查看热门 Docker 镜像推荐
安装一键安装 Docker 并配置镜像源
镜像拉取问题咨询请 提交工单,官方技术交流群:1072982923。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
镜像拉取问题咨询请提交工单,官方技术交流群:。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.