如何在KStream中获取偏移值

时间:2016-11-25 14:38:44

标签: java apache-kafka apache-kafka-streams

我正在使用Kafka Streams开发PoC。现在,我需要在流使用者中获取偏移值,并使用它为每条消息生成唯一键var someObject = { x: 3, y: (function() { var z = // HOW TO ACCESS x HERE? return { // whatever }; })() }; 。原因是:生产者是系统日志,只有少数人有ID。我无法在消费者中生成UUID,因为在重新处理的情况下,我需要重新生成相同的密钥。

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

有人知道如何从Kstream中提取每行的消费者价值吗? 提前谢谢

1 个答案:

答案 0 :(得分:4)

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

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