You need to enable JavaScript to run this app.
文档中心
消息队列 RocketMQ版

消息队列 RocketMQ版

复制全文
下载 pdf
消息查询
消息查询
复制全文
下载 pdf
消息查询
成功接入消息队列 RocketMQ版之后,如果生产环境的消息收发不符合预期,可以通过消息查询功能查看服务端的详细消息内容,确认服务端的消息详情是否与生产端或消费端完全一致,排查消息生产或消费问题。​
背景信息​
推荐您在以下场景中使用消息查询功能:​
  • 查看消息的具体内容,验证消息内容是否和生产端/消费端一致。​
  • 下载指定消息内容,以供进一步的问题排查。​
消息查询功能支持的查询方式如下:​
​
查询方式​
说明​
按消息 ID 查询​
在指定 Topic 中根据消息 ID 查看消息详情。​
按消息 ID 查询时,可以精确到某一条消息,适用于精确查询的情况。​
按消息 Key 查询​
在指定 Topic 中根据指定 Key 查询消息列表。​
按消息 Key 查询时,会筛选出包含指定 Key 的消息列表中最近 16 条消息,适用于没有记录消息 ID 但是设置了消息 Key 的场景。​
说明​
建议消息生产者为每条消息设置具有业务区分度的 Key。Key 尽可能唯一,以确保相同的 Key 的消息数量尽量少,最大不超过 16 条,否则消息查询结果不完整。​
按时间范围查询​
在指定 Topic 中根据时间范围查询消息列表。​
按时间范围查询时,会筛选出符合条件的消息列表,适用于范围查询的情况。​
​
注意事项​
  • 消息在消息队列 RocketMQ版中的存储时间取决于创建实例时设置的消息保留时长,默认为 3 天。只能查询消息保留时长范围内的消息。​
  • 存储空间不足时,后台会删除历史消息,可能有部分消息已被删除无法查询。​
前提条件​
  • 已经部署生产端和消费端服务、成功接入消息队列 RocketMQ版,并在消息保留时长以内有消息生产行为。​
  • 如果通过消息 Key 查询,消息的生产者需要在发送消息时设置 Message Key 属性。​
  • 设置 Message Key 的方法如下。​
说明​
  • Key 尽可能唯一,以确保相同的 Key 的消息数量尽量少,最大不超过 16 条,否则消息查询结果不完整。​
  • 消息 Key 应为英文、数字等可见字符,否则查询结果可能不符合预期。​
  • ​
    Message msg = new Message("YourTopic","*","This is a new message".getBytes());​
    /**​
    * 为每条消息设置具有业务区分度的 Key。​
    */​
    msg.setKey("NewKey"+System.currentTimeMillis()); ​
    ​
查询消息​
  1. 在顶部菜单栏中选择地域,并在选择左侧导航栏中单击实例列表。​
  1. 在实例列表页面找到目标实例,单击实例名称。​
  1. 在顶部页签栏中单击消息查询。​
  1. 选择消息查询的方式,并根据页面提示输入对应信息。​
  • 按消息ID查询:​
  • 在Topic中选择待查询的消息所在的 Topic,并在输入消息 ID中输入待查询的消息 ID。​
  • 按消息 ID 查询时,可以根据消息 ID 精确找到指定的某条消息,为便于消息查询和问题排查,建议在发送消息成功后将消息 ID 打印到日志中。​
  • 按消息 Key 查询:​
  • 在Topic中选择待查询的消息所在的 Topic,并在输入消息 Key中输入待查询的消息 Key。​
  • 按消息 Key 查询时,会筛选出包含指定 Key 的消息列表中最近 16 条消息,适用于没有记录消息 ID 但是设置了消息 Key 的场景。​
  • 按时间范围查询:​
  • 在Topic中选择待查询的消息所在的 Topic,并选择待查询消息的时间段。​
  • 按时间范围查询时,建议根据消息生产的速率合理指定时间范围。如果指定的时间范围较大,或指定时间范围内产生的消息较多,查询结果中会有大量符合条件的消息,不方便定位问题。​
  1. 查看查询结果。​
  • 查询结果会即时显示在当前页面中,主要展示符合筛选条件的消息详情,包括消息ID、Tag、Key、生产者地址、消息大小(Bytes)、生成时间、存储时间。​
  • ​图片​​
重新发送消息​
在消费异常的场景下,客户端未成功消费部分消息,造成消息丢失,影响业务侧的消费完整性。消息队列 RocketMQ版提供消息重发功能,您可以通过消息查询功能找到需要重发的消息列表,并重新发送这些消息到指定 Group 的重试 Topic 或原 Topic 中。消息重发功能支持逐条重发、批量重发或按时间段重发消息。​
消息重发功能适用于消费异常的场景,其与重置消费位点的区别在于,消息重发功能可以指定重发的消息列表,客户端因此只需重新消费指定的消息即可,重置消费位点则需要重新消费指定位点之后的所有消息。​
说明​
若此消息所在的 Topic 是顺序消息类型的 Topic,重新发送消息可能会导致 Topic 出现消息乱序。延迟消息和事务消息也会失去其对应的消息属性。​
  1. 在控制台中查询消息。​
  1. 重新发送消息。​
  • 您可以根据业务需要,选择以下任一方式重发消息。​
  • ​
    方式​
    说明​
    逐条发送消息​
    1. 在查询结果中,找到指定的消息,并在其操作列中单击重新发送。​
    1. (可选)在弹出的对话框中设置 Group,将消息重发至 Group 对应的重试 Topic 中。​
    • 若未指定 Group,重发时将会把消息重发至原 Topic 中。​
    1. 单击立即发送。​
    批量发送消息​
    1. 选择多条消息,并单击左下角的批量重发。​
    1. (可选)在弹出的对话框中设置 Group,将消息重发至 Group 对应的重试 Topic 中。​
    • 若未指定 Group,重发时将会把消息重发至原 Topic 中。​
    1. 单击立即发送。​
    按时间范围重发消息​
    1. 选择多条消息,并单击左下角的按时间范围重发。​
    1. 填写相关设置。​
    • Topic:选择需要重发消息的 Topic。​
    • 消息存储时间:指定一个时间段,在此时间范围内存储的消息将会被重新发送。​
    • Group:选择消息重新发送到的 Group,消息会重发至指定 Group 对应的重试 Topic 中。若未指定 Group,重发时将会把消息重发至原 Topic 中。​
    1. 单击确定重发。​
    ​
下载消息内容​
查找到指定的消息后,可以在消息查询页签中下载消息内容,与生产端或消费端的消息内容进行比对,排查生产消费环节的问题。​
  1. 下载消息。​
  • 在查询结果中,找到指定的消息,并在其操作列中单击消息下载。​
  1. 查看消息内容。​
  • 页面自动下载 .txt 格式的消息文件,其中包含消息体的详细内容。​
​
最近更新时间:2025.07.09 16:22:41
这个页面对您有帮助吗?
有用
有用
无用
无用