我需要创建一个可以满足3个需求(即过滤,转换和处理)的Kafka流应用程序。我有一些需要相应修改的代码。在Kafka流上需要完成的操作的细节由json配置驱动(是否需要过滤,过滤+转换或过滤+转换+流程)。所有这些都内置在一个工作单元中,随后这些工作单元用于构建Kafka流。
使用了apply()方法,将workUnits应用于KSteams
public KStream<Long, String> apply(KStream<Long, String> stream) {
if (isTransformer()) {
return stream.transform(ts);
}
else if (isProcessor()) {
return stream.process(ps, stateStoreNames);(ts);
}
else {
return stream.filter((Long key, String input) -> jsonMatcher.doesMatch(input));
}
}
我想像其他两种情况一样返回stream.process,即stream.transform和stream.filter,但是由于stream.process将stream.process(processorSupplier,stateStoreNames)stateStoreName作为参数。 我没有建立任何状态存储,如何使用ProcessorSupplier提供的我自己的Process类仅实现process()方法?
谢谢