当前位置: 首页 > ds >正文

RocketMQ5.0+保姆级单点Docker部署教程

引言:本文提供了目前基于最新版本的rocketmq部署教程,包括dashboard的部署,还有dashboard的具体使用,当然也参考了很多大佬的文章,得出了这个干货部署和使用教程。

一、官网 

Docker 部署 RocketMQ | RocketMQ

二、部署

 Step 1 : 开放必要端口:

 Step 2 : 拉取 RocketMQ 镜像

拉取最新镜像:

docker pull apache/rocketmq:5.3.2

Step 3 : 创建容器共享网络

docker network create rocketmq

Step 4 : 部署 NameServer

1、创建目录并授权

mkdir -p /data/rocketmq/nameserver/{bin,logs}
chmod 777 -R /data/rocketmq/nameserver/*

2、脚本拷贝

先运行一个容器,把脚本拷贝出来

docker run -d --name rmqnamesrv apache/rocketmq:5.3.2 sh mqnamesrv
docker cp rmqnamesrv:/home/rocketmq/rocketmq-5.3.2/bin/runserver.sh /data/rocketmq/nameserver/bin/
docker rm -f rmqnamesrv

3、启动 NameServer

docker run -d --network rocketmq \
--privileged=true --restart=always \
--name rmqnamesrv -p 9876:9876 \
-v /data/rocketmq/nameserver/logs:/home/rocketmq/logs \
-v /data/rocketmq/nameserver/bin/runserver.sh:/home/rocketmq/rocketmq-5.3.2/bin/runserver.sh \
apache/rocketmq:5.3.2 sh mqnamesrv

查看日志检查是否成功:

docker logs -f rmqnamesrv

如果出现The Name Server boot success..表示 NameServer 启动成功 ✅

Step 5 : 部署 Broker + Proxy

1、创建目录

vim /data/rocketmq/broker/conf/broker.conf

2、创建 broker.conf

配置broker.conf,并配置好角色和刷盘的方式。

vim /data/rocketmq/broker/conf/broker.conf
# NameServer 地址
namesrvAddr = rmqnamesrv:9876# 集群 & Broker 信息
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0# Broker 对外 IP
brokerIP1 = 替换成自己的IP# Broker 角色 + 刷盘方式
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH# 消息存储路径(容器内)
storePathRootDir = /home/rocketmq/store
storePathCommitLog = /home/rocketmq/store/commitlog
storePathConsumeQueue = /home/rocketmq/store/consumequeue
storePathIndex = /home/rocketmq/store/indexdeleteWhen = 04
fileReservedTime = 72
diskMaxUsedSpaceRatio = 75autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
tlsTestModeEnable = false

3、拷贝 Broker 启动脚本

docker run -d --name rmqbroker apache/rocketmq:5.3.2 sh mqbroker
docker cp rmqbroker:/home/rocketmq/rocketmq-5.3.2/bin/runbroker.sh /data/rocketmq/broker/bin
docker rm -f rmqbroker

4、重新启动 Broker + Proxy

docker run -d --network rocketmq \
--restart=always --name rmqbroker --privileged=true \
-p 10911:10911 -p 10909:10909 -p 10912:10912 \
-p 8090:8080 -p 8091:8081 \
-v /data/rocketmq/broker/logs:/home/rocketmq/logs \
-v /data/rocketmq/broker/store:/home/rocketmq/store \
-v /data/rocketmq/broker/conf/broker.conf:/home/rocketmq/broker.conf \
-v /data/rocketmq/broker/bin/runbroker.sh:/home/rocketmq/rocketmq-5.3.2/bin/runbroker.sh \
-e "NAMESRV_ADDR=rmqnamesrv:9876" \
apache/rocketmq:5.3.2 sh mqbroker --enable-proxy -c /home/rocketmq/broker.conf

查看日志,看看是否启动成功:

docker logs -f rmqbroker

出现 "The broker[...] boot success..." 表示成功 ✅

各端口作用:

端口号协议用途说明
10911TCPBroker 主通信端口(默认)这是 Broker 与 Producer 和 Consumer 进行消息发送、拉取、心跳等核心通信的主要端口。客户端通过此端口连接到 Broker。
10909TCPBroker HA(主从复制)端口(默认)在主从架构中,Master Broker 使用此端口向 Slave Broker 推送数据,实现数据同步和高可用。Slave 会连接到 Master 的这个端口。
10912TCPBroker 数据存储检查点端口(默认)用于 Broker 内部组件之间传递存储检查点信息,支持主从同步和故障恢复。通常与 HA 配合使用。
8090TCPBroker Dashboard / 控制台端口(自定义)通过 -p 8090:8080 映射访问 RocketMQ Dashboard
8091TCPBroker Proxy 模式 Dashboard 端口(自定义)在启动命令中使用了 --enable-proxy 参数,这会启动 RocketMQ Proxy 组件。Proxy 的 Dashboard 默认可能运行在 8081 端口。通过 -p 8091:8081 将其映射到宿主机的 8091,用于访问 Proxy 的管理界面。

Step 6 : 部署Dashboard(可选)

拉取最新镜像:

docker pull apacherocketmq/rocketmq-dashboard:latest

运行容器:

docker run -d \
--restart=always --name rmq-dashboard \
-p 8092:8082 --network rocketmq \
-e "JAVA_OPTS=-Xmx256M -Xms256M -Xmn128M -Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" \
apacherocketmq/rocketmq-dashboard

注意这里是8082端口,由于最新版本的rocketmq容器内的8080和8081端口有其他用途,这里最新的dashboard也在变化。

测试:访问 http://服务器IP:8082 进入控制台。

Step 7 :Dashboard的简单使用教程

这里的topic需要自己配置:

配置好你topic的每个属性,这里我觉得还是很个性化的,可以定制化配置

配置项含义作用
clusterName指定该主题所属的集群名称。在分布式消息系统中,一个集群通常包含多个Broker节点。通过选择不同的集群名称,可以将主题分配到不同的物理或逻辑集群上,实现资源隔离和负载均衡。
BROKER_NAME指定该主题所绑定的Broker节点名称。Broker是消息队列中的核心组件,负责接收、存储和转发消息。选择特定的Broker节点,可以控制消息的存储位置和访问路径,便于管理和维护。
topicName定义该主题的名称。主题是消息分类的基本单位,生产者(Producer)根据主题名称发送消息,消费者(Consumer)根据主题名称订阅并消费消息。
messageType消息类型,例如NORMAL表示普通消息。不同的消息类型可能有不同的处理方式和特性,如顺序消息、延迟消息等。设置消息类型可以满足不同的业务需求。
writeQueueNums写队列数量,即该主题在Broker上创建的写队列的数量。写队列用于存储生产者发送的消息。增加写队列数量可以提高消息的并发处理能力,但也会占用更多的内存和磁盘资源。
readQueueNums读队列数量,即该主题在Broker上创建的读队列的数量。读队列用于消费者从Broker中读取消息。增加读队列数量可以提高消息的并发消费能力,但同样会占用更多的内存和磁盘资源。
perm权限设置,通常是一个数字,表示对主题的操作权限,如7表示可读可写可删除。设置主题的权限可以控制哪些用户或应用可以对该主题进行操作,保障系统的安全性和稳定性。

配置好后可以根据topic在这里查看具体的每一条消息

三、关于RocketMQ的在实战中的使用

可以参考我这篇文章:

学习RocketMQ(记录了个人艰难学习RocketMQ的笔记)_rocketmq学习-CSDN博客文章浏览阅读2.7k次,点赞30次,收藏80次。记录从0到1学习RocketMQ的学习笔记,还有对RocketMQ的各种实操,也踩了一大堆坑,尤其是Tag这东西,还好最后都一一捋清楚了。_rocketmq学习 https://blog.csdn.net/qq_73440769/article/details/143443049?spm=1001.2014.3001.5501

四、大佬好文

Docker 部署 RocketMQ (图文并茂超详细)_docker部署rocketmq-CSDN博客文章浏览阅读1w次,点赞53次,收藏134次。使用 Docker 部署 RocketMQ 是一种高效便捷的方式,适合快速启动和管理分布式消息队列服务。首先,从 Docker Hub 拉取 RocketMQ 的官方镜像。RocketMQ 主要包括 NameServer 和 Broker 两个核心组件,因此需要分别启动对应的容器。通过命令行启动 NameServer 容器,配置必要的端口和网络设置。接着,启动 Broker 容器,配置连接到 NameServer 的地址,并指定数据存储路径等参数。RocketMQ 容器在 Docker 的隔离环境中运行_docker部署rocketmq https://blog.csdn.net/apple_74262176/article/details/141886930

http://www.xdnf.cn/news/19612.html

相关文章:

  • 暴力破解基础知识(一)
  • 深入解析 Oracle 并发与锁机制:高并发环境下的数据一致性之道
  • 【数论】P10558 [ICPC 2024 Xi‘an I] XOR Game|普及+
  • 深度学习导论:从理论起源到前沿应用与挑战
  • Halcon学习--(1)常用算子
  • 大模型RAG项目实战:向量数据库Faiss
  • 蓓韵安禧活性叶酸源于上市企业生产
  • 手写MyBatis第44弹:解密MyBatis四大核心组件拦截之道
  • 【influxdb】InfluxDB 2.x 线性写入详解
  • 【IDE问题篇】新电脑安装Keil5,出现找不到arm 编译器版本5编译报错;改为版本6后旧代码编译是出现编译报错
  • 自然语言处理NLP:嵌入层Embedding中input_dim的计算——Tokenizer文本分词和编码
  • android中常见布局及其约束
  • 超越关键词:RAG系统如何破解用户查询的“模糊密码”
  • Redis 中的 Bitmap 与 Bitfield 及 Java 操作实践
  • 【LeetCode】18、四数之和
  • LeetCode 每日一题 2025/8/25-2025/8/31
  • SciPy
  • DrissionPage 实战:动态 IP 代理与百度翻译 API 数据抓取
  • 硬件开发_基于物联网的工厂环境监测系统
  • Qt Demo之 deepseek 帮我写的关于双目标定的小界面
  • redis----zset详解
  • Langflow Memory 技术深度分析
  • Langflow RAG 技术深度分析
  • 人工智能学习:机器学习相关面试题(二)
  • MySQL-视图与用户管理
  • Langchain指南-关键特性:如何流式传输可运行项
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘SQLModel’问题
  • 案例——从零开始搭建 ASP.NET Core 健康检查实例
  • 齿轮加工刀具材料漫谈:从高速钢到陶瓷的 “切削艺术”
  • 传统数据库out啦!KINGBASE ES V9R1C10 开启国产数据库“修仙”新纪元!