消息查询

在使用Kafka的过程中遇到无法正确消费消息、消息丢失、消息延迟等消费问题时,您可通过消息查询功能查看指定消息的详细内容和相关属性,帮助您排查异常原因。若确定消息所在Topic的分区ID以及消息位点,可采用按位点查询消息;若不确定消息的位置,但确定消息发送的时间段,可采用按时间查询消息。

注意事项

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

  • 查询结果最多显示10条消息,且总大小不能超过10 MB。

    • 如果3条消息的总大小已经超过10 MB,那么控制台上只显示2条消息。

    • 如果10条消息的总大小少于10 MB,在控制台上最多也只能看到10条消息。在这样的情况下,请以客户端的实际消费为准。

  • 能否查询到消息,与云消息队列 Kafka 版的消息清除策略相关:

    • 磁盘使用率低于75%,每天凌晨4点集中删除超过消息保留时长的消息。

    • 磁盘使用率介于[75%,85%)区间,定期删除超过消息保留时长的消息,直到磁盘水位降到75%以下。

    • 磁盘使用率介于[85%,90%)区间,无论消息是否超过消息保留时长,根据服务端存储消息的时间先后顺序直接清除消息。

    • 磁盘使用率≥90%,为了保证稳定性,服务开启禁写保护,暂时无法写入新消息。

    重要

    云消息队列 Kafka 版在清除消息时,会至少保留一个存储文件。因此,您有可能查询到超过消息保留时间的消息。

按位点查询消息

  1. 登录云消息队列 Kafka 版控制台

  2. 概览页面的资源分布区域,选择地域。

  3. 实例列表页面,单击目标实例名称。

  4. 在左侧导航栏,单击消息查询

  5. 消息查询页面的查询方式列表中,选择按位点查询

  6. Topic列表中,选择消息所属Topic名称;在分区列表中,选择消息所属的分区;在起始位点文本框,输入消息所在分区的位点,然后单击查询

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

    表 1. 查询结果参数解释

    参数

    描述

    分区

    消息的Topic分区。

    位点

    消息的所在的位点。

    Key

    消息的键(已强制转化为String类型)。

    Value

    消息的值(已强制转化为String类型),即消息的具体内容。

    消息创建时间

    发送消息时,客户端自带的或是您指定的ProducerRecord中的消息创建时间。

    说明
    • 如果配置了该字段,则按配置值显示。

    • 如果未配置该字段,则默认取消息发送时的系统时间。

    • 如果显示值为1970/x/x x:x:x,则说明发送时间配置为0或其他有误的值。

    • 0.9及以前版本的云消息队列 Kafka 版客户端不支持配置该时间。

    操作

    • 单击下载 Key:下载消息的键值。

    • 单击下载 Value:下载消息的具体内容。

按时间查询消息

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

  1. 消息查询页面的查询方式列表中,选择按时间点查询

  2. Topic列表中,选择消息所属Topic名称;在分区列表中,选择消息所属的分区;在时间点中,选择需查询的时间点,然后单击查询

    展示该查询时间点及之后连续的消息。查询结果的参数,请参见查询结果参数解释

    • 如果选择全部分区,则显示全部分区。

    • 如果指定具体分区,则显示指定分区的消息。

相关文档