我是卡夫卡的新手。写了我的第一个带有处理器API的kafka流代码,但不知何故控制没有到达init(),process()或punctuate()函数。问题的关键是,控制不要进入EnrollmentStreamProcessor.java而它应该在“.addProcessor("PROCESS1", () -> new EnrollmentStreamProcessor(), "SOURCE");
”
拓扑构建 - 不是这样吗?
以下是我所写内容的摘要:
{
public static void main(){
...
topology.addSource("SOURCE", topicName)
.addProcessor("PROCESS1", () -> new EnrollmentStreamProcessor(), "SOURCE");
//.addStateStore(pdStore, "PROCESS1")
//.addSink("SINK1", "sink-topic1", "PROCESS2");
KafkaStreams streaming = new KafkaStreams(topology, streamingConfig);
streaming.start();
...
producer.send(new ProducerRecord<String, String>("patient-data-demo",
pd.toString(), pIdent.toString()));
...
}
}
{
...
init(...){
...
}
process(...){
...
}
punctuate(...){
...
}
生产者运行良好而没有错误但是EnrollmentStreamProcessor没有被调用。我错过了什么?
换句话说,当流线程调用init()方法时?低级处理器API的任何流线程生命周期控制流程都将受到高度赞赏。