如遇消息消费有问题,您可通过查询消息排查问题。消息队列Kafka版控制台支持按位点查询和按时间查询。

背景信息

您可根据具体情况按以下推荐方式查询消息:

  • 如果您确定消息所在Topic的分区ID以及消息位点,则推荐您使用按位点查询消息。位点的相关概念,请参见名词解释
  • 如果您不确定消息的位置,但确定消息发送的时间段,则推荐您使用按时间查询消息

注意事项

  • 查询到的每条消息在消息队列Kafka版控制台上最多显示1 KB的内容,超过1 KB的部分将自动截断。如需查看完整的消息内容,请下载相应的消息。

    目前,仅专业版实例支持下载,且下载的消息最大为10 MB。

  • 查询结果最多显示10条消息,且总大小不能超过10 MB。
    • 如果3条消息的总大小已经超过10 MB,那么控制台上只显示2条消息。
    • 如果10条消息的总大小还不到10 MB,在控制台上最多也只能看到10条消息。在这样的情况下,请以客户端的实际消费为准。

    关于实例版本的更多信息,请参见计费概述

  • 能否查询到消息,与消息队列Kafka版的消息清除策略相关:
    • 磁盘使用率低于85%,每天凌晨4点集中删除超过消息保留时间的消息。
    • 磁盘使用率达到85%,立即清除超过消息保留时间的消息。
    • 磁盘使用率达到90%,无论消息是否超过消息保留时间,按服务端存储消息的时间先后顺序清除消息。
    注意 消息队列Kafka版在清除消息时,会至少保留一个存储文件。因此,您有可能查询到超过消息保留时间的消息。

按位点查询消息

  1. 登录消息队列Kafka版控制台
  2. 概览页面的资源分布区域,选择地域。
  3. 实例列表页面,单击目标实例名称。
  4. 在左侧导航栏,单击消息查询
  5. 消息查询页面的查询方式列表中,选择按位点查询
  6. Topic列表中,选择消息所属Topic名称;在分区列表中,选择消息所属的分区;在起始位点文本框,输入消息所在分区的位点,然后单击查询

    展示该查询位点及以后连续的消息。例如,指定的分区和位点都为“5”,那么返回的结果从位点“5”开始。

    表 1. 查询结果参数解释
    参数 描述
    分区 消息的Topic分区。
    位点 消息的所在的位点。
    Key 消息的键(已强制转化为String类型)。
    Value 消息的值(已强制转化为String类型),即消息的具体内容。
    消息创建时间 发送消息时,客户端自带的或是您指定的ProducerRecord中的消息创建时间。
    说明
    • 如果配置了该字段,则按配置值显示。
    • 如果未配置该字段,则默认取消息发送时的系统时间。
    • 如果显示值为1970/x/x x:x:x,则说明发送时间配置为0或其他有误的值。
    • 0.9及以前版本的消息队列Kafka版客户端不支持配置该时间。
    操作
    • 单击下载 Key:下载消息的键值。
    • 单击下载 Value:下载消息的具体内容。
    注意
    • 查询到的每条消息在控制台上最多显示1 KB的内容,超过1 KB的部分将自动截断。如需查看完整的消息内容,请下载相应的消息。
    • 仅专业版支持下载消息。
    • 下载的消息最大为10 MB。如果消息超过10 MB,则只下载10 MB的内容。

按时间查询消息

按时间查询允许查询全部分区的消息,不确定消息的位置,但确定消息发送的时间段,请指定该时间段中的某一个时间点查询该时间点附近的消息。

  1. 登录消息队列Kafka版控制台
  2. 概览页面的资源分布区域,选择地域。
  3. 实例列表页面,单击目标实例名称。
  4. 在左侧导航栏,单击消息查询
  5. 消息查询页面的查询方式列表中,选择按时间点查询
  6. Topic列表中,选择消息所属Topic名称;在分区列表中,选择消息所属的分区;在时间点中,选择需查询的时间点,然后单击查询
    展示该查询时间点及之后连续的消息。查询结果的参数,请参见表 1
    分区的取值会影响查询结果:
    • 如果选择全部分区,则显示全部分区。
    • 如果指定具体分区,则显示指定分区的消息。