RocketMQNotes

第 06 章:管理控制台

zjc 于 2026-01-06 发布

这是《RocketMQ 零基础实战指南》的独立章节版。本章从概念、实操和生产排查三个视角展开,代码块保留了原书可直接运行的版本。 管理控制台是观察集群、Topic、消费组和消息的第一入口。它适合日常巡检、快速定位和低风险运维;涉及位点重置、Topic 删除、Broker 下线等操作时,必须先确认影响范围,再按变更流程执行。

6.1 控制台能力

RocketMQ Dashboard 常用功能:

模块 典型用途
Cluster 查看 Broker、队列、磁盘、流量
Topic 创建、更新、路由、状态、发送消息
Consumer 查看消费组、位点、延迟、客户端连接
Message 按 Key、Topic、Message ID 查询消息
Message Trace 查看消息轨迹
Ops 查看控制台配置

控制台版本不同,功能入口和指标名称可能有差异。生产环境应以实际部署版本的页面说明和官方文档为准。

6.2 安装与连接

使用 Docker 快速启动:

docker run -d \
  --name rocketmq-dashboard \
  -p 8080:8080 \
  -e "JAVA_OPTS=-Drocketmq.namesrv.addr=rocketmq-namesrv:9876" \
  apache/rocketmq-dashboard:latest

建议生产环境固定镜像版本,不建议直接使用 latest。如果 Dashboard 与 NameServer 存在网络隔离,需要先确认端口连通:

telnet rocketmq-namesrv 9876

6.3 集群视图

Cluster 页面重点关注:

  1. Broker 是否全部在线;
  2. 主从角色和副本状态;
  3. 磁盘使用率;
  4. 今日发送和消费流量;
  5. 队列分布是否均匀;
  6. Broker 版本和地址是否符合预期。

示例:

broker-a-master    192.168.1.11:10911  disk 62%
broker-a-replica   192.168.1.12:10911  disk 61%
broker-b-master    192.168.1.13:10911  disk 75%
broker-b-replica   192.168.1.14:10911  disk 74%

当某个 Broker 磁盘明显更高时,需要检查 Topic 队列分布、写入流量和历史数据保留策略。

6.4 Topic 管理

查看 Topic 状态:

Topic: OrderTopic
Broker        Queue              MinOffset   MaxOffset   LastUpdate
broker-a      0                  1000        5000        2026-08-25 10:00:00
broker-a      1                  1000        4800        2026-08-25 10:00:00
broker-b      0                  900         5100        2026-08-25 10:00:00
broker-b      1                  900         4900        2026-08-25 10:00:00

创建 Topic 时要明确:

配置 建议
queueNum 按消费并行度和流量评估,避免一次性过大
perm 生产通常只授予必要读写权限
topicType 区分普通、顺序、事务等场景

更新队列数一般可以增加,减少队列可能影响历史消息消费和顺序性。生产环境应先确认消费进度是否已到达末尾。

6.5 消费组管理

Consumer 页面可以查看:

  1. 消费组订阅关系;
  2. 每个队列的 Commit Offset;
  3. Broker Offset;
  4. 延迟量;
  5. 客户端连接信息;
  6. 消费状态。

延迟计算:

Delayed = Broker Max Offset - Consumer Commit Offset

排查消费延迟:

查看客户端是否在线
  -> 查看订阅 Topic 和 Tag 是否正确
  -> 查看队列是否有消费者
  -> 查看消费耗时
  -> 查看重试和死信

不要在未确认业务含义时直接重置位点。重置到较早位置会重复消费,重置到最新位置会跳过未消费消息。

6.6 消息查询

常用查询方式:

方式 适用场景
Message ID 精确定位单条消息
Message Key 按业务键追踪
Topic + 时间范围 辅助缩小范围

示例业务 Key:

orderId=O202608250001
userId=U10001
traceId=7f0c...

查询后可以查看:

  1. 消息体;
  2. Tag;
  3. Key;
  4. 属性;
  5. 存储时间;
  6. 重试次数;
  7. 所在队列和位点。

如果消息按 Key 查不到,可能是生产者没有设置 Key,或查询时间范围不正确。

6.7 权限与安全

生产控制台建议:

  1. 仅暴露在内网或运维网络;
  2. 接入统一认证和授权;
  3. 按团队隔离 Topic 权限;
  4. 高危操作开启审批;
  5. 记录操作审计;
  6. 与集群 ACL 账号联动;
  7. 不在公共网络明文暴露。

最小权限示例:

只读巡检账号:查询集群、Topic、消息
业务运维账号:管理指定业务 Topic
平台管理员:全量管理,但操作需审批

6.8 常见问题

问题 排查
集群为空 Dashboard 连接 NameServer 地址错误、网络不通
Topic 查不到 权限不足、环境不一致、Topic 未创建
消费组无数据 消费者未启动、订阅错误、分组错误
消息查不到 Key 未设置、时间范围错误、消息过期
页面能看但不能操作 ACL 权限或控制台只读配置
磁盘告警 检查保留时间、写入量、磁盘容量

本章小结

管理控制台用于集群巡检、Topic 与消费组治理、消息查询和轨迹定位。生产使用时必须固定版本、控制网络暴露范围、接入认证授权,并对位点重置和 Topic 变更保持变更管理纪律。看懂数据的关键是把 Broker Offset、消费位点和消息轨迹串联起来。

思考题

  1. 为什么生产环境不建议使用 latest 控制台镜像?
  2. 消费延迟等于什么两个位点之差?
  3. 重置消费位点有哪些风险?
  4. Topic 队列数减少可能影响什么?
  5. 如何为控制台设计只读和高危操作权限?