跳到主要内容

RocketMQ 运维命令

RocketMQ 是一款高性能、高吞吐量的分布式消息中间件,广泛应用于大规模分布式系统中。为了确保 RocketMQ 集群的稳定运行,掌握常用的运维命令是必不可少的。本文将详细介绍 RocketMQ 的常用运维命令,并通过实际案例展示其应用场景。

1. 介绍

RocketMQ 提供了丰富的命令行工具,用于监控和管理集群的状态、主题、消费者组等。这些命令可以帮助运维人员快速定位问题、调整配置以及优化性能。本文将重点介绍以下几个方面的命令:

  • 集群状态监控
  • 主题管理
  • 消费者组管理
  • 消息查询与重发

2. 集群状态监控

2.1 查看集群状态

使用 mqadmin clusterList 命令可以查看 RocketMQ 集群的状态。该命令会列出集群中的所有 Broker 节点及其状态信息。

mqadmin clusterList -n localhost:9876

输出示例:

#Cluster Name     #Broker Name          #BID  #Addr                  #Version        #InTPS(LOAD)       #OutTPS(LOAD)     #PCWait(ms)   #Hour #SPACE
DefaultCluster broker-a 0 192.168.1.101:10911 V4_9_4 0.00(0.00) 0.00(0.00) 0 0 0.00
DefaultCluster broker-b 1 192.168.1.102:10911 V4_9_4 0.00(0.00) 0.00(0.00) 0 0 0.00
提示

-n 参数指定 NameServer 的地址,localhost:9876 是默认的 NameServer 地址。

2.2 查看 Broker 状态

使用 mqadmin brokerStatus 命令可以查看指定 Broker 的详细状态信息。

mqadmin brokerStatus -n localhost:9876 -b 192.168.1.101:10911

输出示例:

#Broker Name          #BID  #Addr                  #Version        #InTPS(LOAD)       #OutTPS(LOAD)     #PCWait(ms)   #Hour #SPACE
broker-a 0 192.168.1.101:10911 V4_9_4 0.00(0.00) 0.00(0.00) 0 0 0.00

3. 主题管理

3.1 创建主题

使用 mqadmin updateTopic 命令可以创建或更新主题。

mqadmin updateTopic -n localhost:9876 -t TestTopic -c DefaultCluster
警告

-t 参数指定主题名称,-c 参数指定集群名称。

3.2 删除主题

使用 mqadmin deleteTopic 命令可以删除指定主题。

mqadmin deleteTopic -n localhost:9876 -t TestTopic -c DefaultCluster

4. 消费者组管理

4.1 查看消费者组状态

使用 mqadmin consumerProgress 命令可以查看指定消费者组的消费进度。

mqadmin consumerProgress -n localhost:9876 -g TestConsumerGroup

输出示例:

#Consumer Group        #Topic          #Broker Name          #QID  #Broker Offset       #Consumer Offset     #Diff       #LastTime
TestConsumerGroup TestTopic broker-a 0 100 90 10 2023-10-01 12:00:00
备注

-g 参数指定消费者组名称。

4.2 重置消费者组偏移量

使用 mqadmin resetOffsetByTime 命令可以重置消费者组的偏移量。

mqadmin resetOffsetByTime -n localhost:9876 -g TestConsumerGroup -t TestTopic -s 20231001120000
注意

-s 参数指定时间戳,格式为 yyyyMMddHHmmss

5. 消息查询与重发

5.1 查询消息

使用 mqadmin queryMsgByKey 命令可以根据消息 Key 查询消息。

mqadmin queryMsgByKey -n localhost:9876 -t TestTopic -k TestKey

5.2 重发消息

使用 mqadmin sendMsgStatus 命令可以重发指定消息。

mqadmin sendMsgStatus -n localhost:9876 -t TestTopic -i 1234567890
提示

-i 参数指定消息的偏移量。

6. 实际案例

6.1 案例:消费者组消费滞后

假设我们发现 TestConsumerGroup 消费滞后,可以通过以下步骤进行排查和修复:

  1. 使用 mqadmin consumerProgress 查看消费进度。
  2. 如果发现消费滞后,使用 mqadmin resetOffsetByTime 重置偏移量到指定时间点。
  3. 再次查看消费进度,确认问题是否解决。

7. 总结

本文介绍了 RocketMQ 的常用运维命令,包括集群状态监控、主题管理、消费者组管理以及消息查询与重发。通过这些命令,运维人员可以有效地监控和管理 RocketMQ 集群,确保其稳定运行。

8. 附加资源

9. 练习

  1. 使用 mqadmin clusterList 查看你的 RocketMQ 集群状态。
  2. 创建一个新主题,并使用 mqadmin updateTopic 命令进行管理。
  3. 尝试重置一个消费者组的偏移量,并观察消费进度的变化。