这是《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 页面重点关注:
- Broker 是否全部在线;
- 主从角色和副本状态;
- 磁盘使用率;
- 今日发送和消费流量;
- 队列分布是否均匀;
- 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 页面可以查看:
- 消费组订阅关系;
- 每个队列的 Commit Offset;
- Broker Offset;
- 延迟量;
- 客户端连接信息;
- 消费状态。
延迟计算:
Delayed = Broker Max Offset - Consumer Commit Offset
排查消费延迟:
查看客户端是否在线
-> 查看订阅 Topic 和 Tag 是否正确
-> 查看队列是否有消费者
-> 查看消费耗时
-> 查看重试和死信
不要在未确认业务含义时直接重置位点。重置到较早位置会重复消费,重置到最新位置会跳过未消费消息。
6.6 消息查询
常用查询方式:
| 方式 | 适用场景 |
|---|---|
| Message ID | 精确定位单条消息 |
| Message Key | 按业务键追踪 |
| Topic + 时间范围 | 辅助缩小范围 |
示例业务 Key:
orderId=O202608250001
userId=U10001
traceId=7f0c...
查询后可以查看:
- 消息体;
- Tag;
- Key;
- 属性;
- 存储时间;
- 重试次数;
- 所在队列和位点。
如果消息按 Key 查不到,可能是生产者没有设置 Key,或查询时间范围不正确。
6.7 权限与安全
生产控制台建议:
- 仅暴露在内网或运维网络;
- 接入统一认证和授权;
- 按团队隔离 Topic 权限;
- 高危操作开启审批;
- 记录操作审计;
- 与集群 ACL 账号联动;
- 不在公共网络明文暴露。
最小权限示例:
只读巡检账号:查询集群、Topic、消息
业务运维账号:管理指定业务 Topic
平台管理员:全量管理,但操作需审批
6.8 常见问题
| 问题 | 排查 |
|---|---|
| 集群为空 | Dashboard 连接 NameServer 地址错误、网络不通 |
| Topic 查不到 | 权限不足、环境不一致、Topic 未创建 |
| 消费组无数据 | 消费者未启动、订阅错误、分组错误 |
| 消息查不到 | Key 未设置、时间范围错误、消息过期 |
| 页面能看但不能操作 | ACL 权限或控制台只读配置 |
| 磁盘告警 | 检查保留时间、写入量、磁盘容量 |
本章小结
管理控制台用于集群巡检、Topic 与消费组治理、消息查询和轨迹定位。生产使用时必须固定版本、控制网络暴露范围、接入认证授权,并对位点重置和 Topic 变更保持变更管理纪律。看懂数据的关键是把 Broker Offset、消费位点和消息轨迹串联起来。
思考题
- 为什么生产环境不建议使用
latest控制台镜像? - 消费延迟等于什么两个位点之差?
- 重置消费位点有哪些风险?
- Topic 队列数减少可能影响什么?
- 如何为控制台设计只读和高危操作权限?