mq Cheatsheet

消息队列常用命令速查表

Kafka、RabbitMQ 和 RocketMQ 三大消息队列一页速查:kafka-consumer-groups 查 lag 与 rebalance、rabbitmqctl list_queues/connections 排查积压泄漏、mqadmin consumerProgress 与 queryMsgById,以及磁盘水位与日志排查命令。

把 Kafka、RabbitMQ 和 RocketMQ 排障现场最常用的消费进度、连接数、积压和集群状态命令整理成一页,消息丢失或积压时按组往下查。

mqkafkarabbitmqrocketmq积压lag

Kafka

  • kafka-consumer-groups.sh --bootstrap-server :9092 --list
    列出所有消费组
  • kafka-consumer-groups.sh --describe --group <group>
    查看消费组 lag 和分区进度
  • kafka-topics.sh --describe --topic <topic>
    查看 topic 分区、副本和 leader 分布
  • kafka-log-dirs.sh --describe --topic-list <topic>
    查看 topic 磁盘占用
  • kafka-consumer-perf-test.sh --bootstrap-server :9092 --topic <t> --messages 1000
    压测消费吞吐

RabbitMQ

  • rabbitmqctl list_queues name messages consumers
    查看队列积压和消费者数
  • rabbitmqctl list_connections name state channels
    查看连接和 channel 数,排查泄漏
  • rabbitmqctl list_channels pid number
    按 channel 维度定位哪个连接占用多
  • rabbitmqctl cluster_status
    查看集群节点和分区状态
  • rabbitmqadmin get queue=<q> count=1 ack=false
    偷看队首消息但不确认,调试用

RocketMQ

  • mqadmin consumerProgress -g <group>
    查看消费组各队列积压进度
  • mqadmin topicList -m
    查看 topic 路由和队列分布
  • mqadmin clusterList
    查看 Broker 集群状态和角色
  • mqadmin brokerConsumeStats -b <addr> -g <group>
    按 Broker 看消费统计
  • mqadmin queryMsgById -i <msgId>
    按消息 ID 查询消息内容,排查丢失

通用积压与连接排查

  • kafka-consumer-groups.sh --describe --group <g> --state
    看消费组是否在 rebalance
  • rabbitmqctl node_health_check
    快速检查节点健康(旧版命令)
  • ss -tnp | grep :9092 | wc -l
    统计到 Broker 的连接数,排查连接泄漏
  • du -sh /var/lib/kafka /var/lib/rabbitmq
    查看 MQ 数据盘占用,水位线告警必看
  • journalctl -u kafka --since "10 min ago"
    看 Broker 最近日志,排查 OOM 或限流

容易踩的坑

  • 消息积压先看 lag 和消费者数,确认是消费慢还是消费者不够,而不是直接清队列。
  • 排查连接泄漏时同时看 list_connections 和应用侧连接池配置,单看一边容易误判。
  • 重启 Broker 前确认消息是否持久化,未落盘的消息会直接丢失。