kafka流处理器API函数未被调用

时间:2017-10-30 05:09:38

标签: apache-kafka apache-kafka-streams

我是卡夫卡的新手。写了我的第一个带有处理器API的kafka流代码,但不知何故控制没有到达init(),process()或punctuate()函数。问题的关键是,控制不要进入EnrollmentStreamProcessor.java而它应该在“.addProcessor("PROCESS1", () -> new EnrollmentStreamProcessor(), "SOURCE");” 拓扑构建 - 不是这样吗?

以下是我所写内容的摘要:

Producer.java

{
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()));
...
}

}

EnrollmentStreamProcessor.java

{
...

init(...){
...
}

process(...){
...
}
punctuate(...){
...
}

生产者运行良好而没有错误但是EnrollmentStreamProcessor没有被调用。我错过了什么?

换句话说,当流线程调用init()方法时?低级处理器API的任何流线程生命周期控制流程都将受到高度赞赏。

0 个答案:

没有答案