java - 如何获取 KStream 中的偏移值

标签 java apache-kafka apache-kafka-streams

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

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

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

最佳答案

您可以通过process(...)transform(...)transformValues( ...)

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

关于java - 如何获取 KStream 中的偏移值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40807346/

相关文章:

docker - kafka.errors.KafkaTimeoutError : KafkaTimeoutError: Failed to update metadata after 60. 0 秒

java - Kafka AdminClientConfig 忽略提供的配置

hadoop - 将 AVRO 数据写入 Hadoop hdfs

Java Swing Frame 导航到另一个 Frame

java - BorderLayout 顶部的 JMenuBar

java - 避免对 validator 列表进行两次传递

java - 修改器和访问器(使用继承)

apache-kafka - 当 kafka 流中发生重新分区时,究竟会发生什么?

java - 如何在 Spring Kafka Stream 中配置 UncaughtExceptionHandler

apache-kafka - Kafka时差最后两条记录,KSQL还是其他?