新北市网站建设_网站建设公司_移动端适配_seo优化
2025/12/31 17:59:04 网站建设 项目流程

目录标题

  • RocketMQ mqadmin 排查与模拟
    • 一、环境背景说明
    • 二、核心概念速记
    • 三、查看 Topic 是否有生产
    • 四、查看 Topic 的生产 / 消费速率(最推荐)
    • 五、如何查看 ConsumerGroup(重点)
      • 1️⃣ 查看当前所有 ConsumerGroup
      • 2️⃣ 查看某个 ConsumerGroup 的消费情况
      • 3️⃣ 判断 Consumer 是否在线
    • 六、mqadmin 模拟生产(安全)
    • 七、mqadmin 模拟消费(⚠️慎用)
      • 只读不推 offset(安全)
      • 推进 offset(有风险)
    • 八、mqadmin 能做 / 不能做的事
      • ✅ 能做
      • ❌ 不能做
    • 九、标准排障流程(推荐记住)
    • 十、运维重要提醒
    • 十一、常用参数说明
    • 十二、官方文档链接
      • 📚 核心文档
      • 常用命令快速参考
    • 十三、一句话总结

RocketMQ mqadmin 排查与模拟

适用场景:

  • 不清楚某个 Topic 是否有生产 / 消费
  • 不知道 ConsumerGroup 是什么
  • mqadmin 命令部分不可用(版本差异)
  • 需要用 mqadmin 做最小化排障、验证链路

一、环境背景说明

当前环境使用的 mqadmin 路径:

/root/rocketmq/broker/bin/mqadmin

该 mqadmin 特点:

  • ✅ 功能较完整
  • ✅ 支持consumeMessage(可模拟消费)
  • ❌ 不支持consumerList/topicConsumeStatus
  • 属于定制 / 增强版 mqadmin(命令名与 Apache 官方新版略有差异)

二、核心概念速记

概念说明
Topic生产侧逻辑概念(消息写入)
ConsumerGroup消费侧逻辑概念(offset 归属)
#InTPSTopic 生产速率(每秒写入消息数)
#OutTPSTopic 消费速率(每秒消费消息数)
#Accumulation消息堆积量(BrokerOffset - ConsumerOffset)

⚠️ Topic 与 ConsumerGroup不是一对一关系


三、查看 Topic 是否有生产

mqadmin topicStatus-n<NameSrv>-t<Topic>

示例输出:

#Broker Name #QID #Min Offset #Max Offset #Last Updated rocketmq-ddffdb1a-0 0 0 22 2025-12-31 07:04:47,308

关注字段:#MaxOffset

判断逻辑:

  • MaxOffset 持续增长 → 有生产
  • MaxOffset 不变 → 无生产 / 生产异常

四、查看 Topic 的生产 / 消费速率(最推荐)

mqadmin statsAll-n<NameSrv>|grep<Topic>

示例输出:

#Topic #Consumer Group #Accumulation #InTPS #OutTPS #InMsg24Hour #OutMsg24Hour bpx-topic 0 0.00 0.00 20 NO_CONSUMER

字段含义:

  • #InTPS:生产速率(msg/s)
  • #OutTPS:消费速率(msg/s)
  • #Accumulation:消息堆积量

判断:

  • #InTPS > #OutTPS → 正在堆积
  • #InTPS ≈ #OutTPS → 消费跟得上
  • NO_CONSUMER→ 无消费者订阅该 Topic

五、如何查看 ConsumerGroup(重点)

1️⃣ 查看当前所有 ConsumerGroup

mqadmin consumerProgress-n<NameSrv>

示例输出:

#Group #Count #Version #Type #Model #TPS #Diff Total bpx-consumer-group 0 OFFLINE 0 0 TOOLS_CONSUMER 3 V4_9_4 PULL 0 0

说明:

  • GroupName 即 ConsumerGroup
  • 可同时看到堆积量(#Diff Total)、消费速率(#TPS)
  • OFFLINE 表示该 Consumer 当前未在线

2️⃣ 查看某个 ConsumerGroup 的消费情况

mqadmin consumerProgress-n<NameSrv>-g<ConsumerGroup>

用途:

  • 判断该 Group 是否堆积
  • 判断消费是否正常推进

3️⃣ 判断 Consumer 是否在线

mqadmin consumerConnection-n<NameSrv>-g<ConsumerGroup>

示例输出(在线):

#ClientId #ClientAddr #Language #Version 245.0.1.220@consumer-xxx@STREAM 245.0.1.220:40726 JAVA V4_9_4

判断:

  • 有客户端信息 → Consumer 正常在线
  • 无输出 / 报错 → Consumer 未启动或异常

六、mqadmin 模拟生产(安全)

mqadmin sendMessage\-n<NameSrv>\-t<Topic>\-p"mqadmin test message"

示例输出:

#Broker Name #QID #Send Result #MsgId rocketmq-ddffdb1a-0 0 SEND_OK F500033F033A3AF49F1C9C0758D10000

用途:

  • 验证 Topic 是否可写
  • 验证 Broker 是否正常
  • 验证消费链路是否能收到消息

七、mqadmin 模拟消费(⚠️慎用)

⚠️风险说明

  • 不指定-g参数:只读取消息,不推进 offset(相对安全)
  • 指定-g <ConsumerGroup>参数:会推进该 Group 的 offset(生产环境慎用)

只读不推 offset(安全)

mqadmin consumeMessage\-n<NameSrv>\-t<Topic>\-c10

推进 offset(有风险)

mqadmin consumeMessage\-n<NameSrv>\-t<Topic>\-g<ConsumerGroup>\-c10

说明:

  • 属于"运维级假消费"
  • 适合排障 / 验证,不等同真实业务消费
  • 建议先查看帮助:mqadmin help consumeMessage

八、mqadmin 能做 / 不能做的事

✅ 能做

  • 模拟生产消息
  • 拉取消息(假消费)
  • 查看 Topic 状态
  • 查看 TPS / 堆积
  • 查询消息

❌ 不能做

  • 模拟真实业务消费逻辑
  • 执行完整 rebalance
  • 精准压测消费者性能

真实消费必须使用:

  • 官方示例 Consumer
  • 自定义 SDK Consumer

九、标准排障流程(推荐记住)

1️⃣ topicStatus → 是否有生产 2️⃣ statsAll → 生产 / 消费 TPS 3️⃣ consumerProgress → 谁在消费 + 是否堆积 4️⃣ consumerConnection → Consumer 是否在线

十、运维重要提醒

⚠️生产环境慎用以下命令:

命令风险
consumeMessage -g <Group>推进 offset,可能丢失消息
resetOffsetByTime重置 offset,可能重复消费或跳过消息
skipAccumulatedMessage跳过堆积消息,造成业务消息丢失

十一、常用参数说明

参数含义
-nNameServer 地址,格式ip:port,多个用分号分隔
-tTopic 名称
-gConsumerGroup 名称
-bBroker 地址或名称
-h查看帮助
-c数量(如消息条数)

十二、官方文档链接

📚 核心文档

文档链接
Admin Tool 官方文档(中文)rocketmq.apache.org/zh/docs/deploymentOperations/02admintool
Admin Tool 官方文档(English)rocketmq.apache.org/docs/deploymentOperations/02admintool
Apache RocketMQ 官网rocketmq.apache.org
Apache RocketMQ GitHubgithub.com/apache/rocketmq

常用命令快速参考

类别命令说明
TopictopicList查看所有 Topic
TopictopicStatus查看 Topic 消息队列 offset
TopictopicRoute查看 Topic 路由信息
TopicstatsAll打印订阅关系、TPS、积累量等
消费consumerProgress查看消费状态和进度
消费consumerConnection查询 Consumer 网络连接
消费consumerStatus查看消费者详细状态
消息sendMessage发送一条测试消息
消息consumeMessage消费消息(可指定 offset)
消息queryMsgById根据 msgId 查询消息
消息queryMsgByKey根据 Key 查询消息
集群clusterList查看集群信息
集群brokerStatus查看 Broker 运行状态

十三、一句话总结

在 RocketMQ 中:

  • Topic 看生产
  • ConsumerGroup 看消费
  • statsAll 看吞吐
  • consumerProgress 看堆积

这四点,能解决 90% 的 RocketMQ 排障问题。


Sources:

  • Admin Tool - Apache RocketMQ

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询