全部产品

查询消息

更新时间:2019-04-24 11:29:20

本文为您介绍消息队列 Kafka 的消息查询方式,方便您提升排查问题的效率。

背景信息

消息队列 Kafka 控制台提供两种消息查询方式:按位点查询和按时间查询,帮助提高问题排查效率。例如某个时刻的消息消费有问题,则可通过按时间查询的方式查询这个时刻具体发送了哪些消息以及这些消息的内容。

这两种消息查询方式的最大的差异在于按位点查询只能查询某一分区的消息,而按时间查询允许查询全部分区的消息。考虑到此种差异,您可根据具体情况按推荐方式查询消息:

  • 如果确定消息的位置,则推荐使用按位点查询
  • 如果不确定消息的位置,但确定问题消息发送的时间,则推荐使用按时间查询

注意:消息查询可能有截断的情况,请以客户端实际消费的为准。

按位点查询

消息队列 Kafka 中的一个位点指向一条消息,在确定需要查询问题消息的位置的情况下,可以请指定位点查询相应的消息。

前提条件

您有正常运行的实例,并为该实例创建了 Topic,且使用该 Topic 发送过消息。否则无法查询。

操作步骤

  1. 登录消息队列 Kafka 控制台。在顶部导航栏,选择所需查询的实例所在地域(Region)。

    选择地域

  2. 在左侧导航栏,选择消息查询,在消息查询页面,选择需查询的实例,并单击按位点查询页签。

    在第一个输入框中,输入需查询的 Topic 名称,第二个下拉框中,选择需查询的分区,然后再在第三个输入框中按提示输入位点,最后单击搜索

    按位点-信息

    则可以在按位点查询页签看到搜索结果。

    返回结果数限制:

    • 最多返回输入位点后 10 条消息;
    • 最多返回消息大小限制在 256 KB。

    对搜索结果中所涉及的字段说明如下:

    • 分区:与步骤 3 中查询时选择的分区 ID 一致
    • 位点:在步骤 3 中查询时输入的位点及以后的所有位点
    • TimeStamp:消息发送时,ProducerRecord 中的 timestamp

4.(可选)单击操作列下的消息详情查看详情。所示字段说明如下:

  • Key/Value(size:XXB):消息 Key/Value 序列化后的大小,取值为 ConsumerRecord 中的 serializedKeySize/serializedValueSize。
  • body:查询到的消息的消息体的具体内容(已强制转换为 String 类型)。

按时间查询

按时间查询允许查询全部分区的消息,不确定消息的位置,但确定消息发送的时间,请指定对应的时间段查询相应的消息。

前提条件

您有正常运行的实例,并为该实例创建了 Topic,且使用该 Topic 发送过消息。否则无法查询。

步骤

  1. 登录消息队列 Kafka 控制台。在顶部导航栏,选择所需查询的实例所在地域。

    选择地域

  2. 在左侧导航栏,选择消息查询,在消息查询页面,选择需查询的实例,并单击按时间查询页签。

    在第一个输入框中,输入需查询的 Topic 名称,第二个下拉框中,选择需查询的分区,然后再在第三个输入框中选择需查询的时间段,最后单击搜索

    按时间查询

    则可以在按时间查询页签看到搜索结果。

    返回结果数限制:

    • 最多返回输入位点后 10 条消息;
    • 最多返回消息大小限制在 256 KB。

    对搜索结果中所涉及的字段说明如下:

    • 分区:与步骤 3 中查询时选择的分区 ID 一致
    • 位点:在步骤 3 中查询时输入的位点及以后的位点
    • TimeStamp:消息发送时,ProducerRecord 中的 timestamp
  3. (可选)单击操作列下的消息详情查看详情。所示字段说明如下:

  • Key/Value(size:XXB):消息 Key/Value 序列化后的大小,取值为 ConsumerRecord 中的 serializedKeySize/serializedValueSize。
  • body:查询到的消息的消息体的具体内容(已强制转换为 String 类型)。