更新时间:2025-08-13 GMT+08:00
分享

查看RocketMQ消息

RocketMQ提供了三种消息查询的方式,分别是按Topic、Message ID以及Message Key查询。您可以通过消息查询验证消息是否发送和消费成功、验证消息发送的内容是否正确、以及进一步查看消息的轨迹信息。

消息清理机制

无论消息是否被消费,RocketMQ的消息默认保留时间为48小时,最长保留时间为720小时,修改保留时间的操作请参见修改RocketMQ消息保留时间。RocketMQ消息存储在CommitLog文件中,CommitLog文件大小为1GB,当一个CommitLog文件写满后,会生成一个新的CommitLog文件。RocketMQ删除消息是删除CommitLog文件,而不是删除一条消息。CommitLog文件为顺序写入,当最后写入的一条消息过期时,表示CommitLog文件过期。满足如下任意一个条件,CommitLog文件将会被清理:

  • 每天凌晨4点会清理过期的文件,部分老实例由于未设置时区,清理时间为每天中午12点。
  • 当磁盘使用率达到70%(针对4.8.0版本)或75%(针对5.x版本)时,会立刻清理过期的文件。
  • 当磁盘使用率达到85%时,会从最早创建的文件开始清理,不管文件是否已过期,直到磁盘空间充足。

前提条件

  • 已创建RocketMQ实例和Topic。
  • 已使用客户端连接RocketMQ生产和消费消息,具体请参见使用客户端连接RocketMQ(关闭SSL)使用客户端连接RocketMQ(开启SSL)使用控制台连接RocketMQ
  • 如果通过按Message ID查询,需要提前获取消息所在的Topic名称和消息的Message ID。

    Message ID为生产消息后返回的MsgId,如6中返回的内容,也可先通过Topic查询消息,记录Message ID。

  • 如果通过按Message Key查询,需要提前获取消息所在的Topic名称和消息的Message Key。

    Message Key为5中配置的消息Key,也可先通过Topic查询消息,记录Message Key。

查询方式说明

三种查询方式的特点和对比如表1所述。

表1 消息查询方式说明

查询方式

查询条件

说明

按Topic查询

Topic+时间段

根据Topic和时间范围,批量获取符合条件的所有消息,查询量大,不易匹配。

按Message ID查询

Topic+Message ID

根据Topic和Message ID可以精确定位任意一条消息,获取消息的属性。

按Message Key查询

Topic+Message Key

根据Topic和Message Key可以匹配到包含指定Key的消息。

查询消息内容

  1. 登录RocketMQ实例控制台
  2. 单击RocketMQ实例的名称,进入实例详情页面。
  3. 在左侧导航栏,单击“实例管理 > 消息查询”,进入“消息查询”页面。
  4. 选择以下任意一种方法,查询消息。

    • 按Topic查询:“Topic”选择待查询消息的Topic名称,“队列”选择待查询消息的队列(仅RocketMQ实例4.8.0版本需要选择),“存储时间”选择待查询消息的时间段,单击“查询”。
      图1 按Topic查询消息

    • 按Message ID查询:“Topic”选择待查询消息所在的Topic名称,“Message ID”输入待查询消息的Message ID,单击“查询”。
      图2 按Message ID查询消息

    • 按Message Key查询:“Topic”选择待查询消息所在的Topic名称,“Message Key”输入待查询消息的Message Key,单击“查询”。
      图3 按Message Key查询消息

  5. 在待查询消息所在行,单击“查看详情”,查看消息的具体内容。

    消息的具体内容包括消息大小、消息的生成时间以及消息的内容。
    图4 查看消息详情
    • 消息体大于4096字节时,在控制台无法显示所有的内容,单击“下载消息”,在下载的JSON文件中查看消息体。
    • 单击“复制消息”可以复制消息的内容。

相关文档

消息的查询也可以通过调用API完成,具体请参见查询消息

相关文档