我想了解是否可以在 Kafka 主题中找到特定消息。Kafka消息KEY被认为是解决该问题的手段。
但我怀疑,该键只能识别主题内的分区,而不是分区内的特定消息。
有没有办法识别Kafka分区中的特定消息,并找到该消息以供进一步使用(例如,读取该特定消息)?
这是关于流处理的。
例如:
分区包括 4 条消息:消息 1、消息 2、消息 3、消息 4。我只想找到消息 1,因为该消息具有(可能!)唯一的 id。就像数据库中的 id 一样。
Kafka 主题可以被视为仅附加日志,而不是键/值存储。
因此,诸如关系数据库中可以查找的主键之类的概念在这里不适用。然而,Kafka 有一个相当技术性的唯一标识符,称为“偏移量”,它是一个增量计数器。Kafka 中的消息由其主题名称、主题分区和偏移量唯一定义。
因此,除非您知道这三个值,否则您无法查找特定消息。
另一种方法是从一开始就使用整个主题,并根据您的需求实施过滤器。为了避免从头开始阅读该主题,您还可以使用offsetsForTimesAPI,它可以帮助您根据时间戳识别偏移量。