如何在 KStream 中获取偏移值

Ste*_*rio 5 java apache-kafka apache-kafka-streams

我正在使用 Kafka Streams 开发 PoC。现在我需要在流消费者中获取偏移值并使用它(topic-offset)->hash为每条消息生成一个唯一的键。原因是:生产者是 syslog,只有少数有 ID。我无法在消费者中生成 UUID,因为在重新处理的情况下,我需要重新生成相同的密钥。

我的问题是:org.apache.kafka.streams.processor.ProcessorContext该类公开了一个.offset()返回值的方法,但我使用的是 KStream 而不是处理器,而且我找不到返回相同内容的方法。

有人知道如何从 KStream 中提取每一行的消费者值吗?提前致谢。

Mat*_*Sax 6

您可以通过使用混合和匹配DSL和处理器的API process(...)transform(...)transformValues(...)

它允许您访问类似于普通处理器 API 的当前记录偏移量。在您的情况下,您似乎想使用KStream#transform(...).