我正在使用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中提取每行的消费者价值吗? 提前谢谢
答案 0 :(得分:4)
您可以通过process(...)
,transform(...)
和transformValues(...)
使用混合搭配DSL和处理器API。
它允许您访问类似于普通处理器API的当前记录偏移量。在你的情况下,似乎你想使用KStream#transform(...)
。