在使用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 版在清除消息时,会至少保留一个存储文件。因此,您有可能查询到超过消息保留时间的消息。
按位点查询消息
在概览页面的资源分布区域,选择地域。
在实例列表页面,单击目标实例名称。
在左侧导航栏,单击消息查询。
在消息查询页面的查询方式列表中,选择按位点查询。
在Topic列表中,选择消息所属Topic名称;在分区列表中,选择消息所属的分区;在起始位点文本框,输入消息所在分区的位点,然后单击查询。
展示该查询位点及以后连续的消息。例如,指定的分区和位点都为“5”,那么返回的结果从分区“5”的位点“5”开始。
表 1. 查询结果参数解释 参数
描述
分区
消息的Topic分区。
位点
消息的所在的位点。
Key
消息的键(已强制转化为String类型)。
Value
消息的值(已强制转化为String类型),即消息的具体内容。
消息创建时间
发送消息时,客户端自带的或是您指定的
ProducerRecord
中的消息创建时间。说明如果配置了该字段,则按配置值显示。
如果未配置该字段,则默认取消息发送时的系统时间。
如果显示值为1970/x/x x:x:x,则说明发送时间配置为0或其他有误的值。
0.9及以前版本的云消息队列 Kafka 版客户端不支持配置该时间。
操作
单击下载 Key:下载消息的键值。
单击下载 Value:下载消息的具体内容。
按时间查询消息
按时间查询允许查询全部分区的消息,不确定消息的位置,但确定消息发送的时间段,请指定该时间段中的某一个时间点查询该时间点附近的消息。
在消息查询页面的查询方式列表中,选择按时间点查询。
在Topic列表中,选择消息所属Topic名称;在分区列表中,选择消息所属的分区;在时间点中,选择需查询的时间点,然后单击查询。
展示该查询时间点及之后连续的消息。查询结果的参数,请参见查询结果参数解释。
如果选择全部分区,则显示全部分区。
如果指定具体分区,则显示指定分区的消息。