如何在生成kafka接收器后获得确认,即使用FlinkKafkaProducer09

时间:2016-08-10 10:18:55

标签: apache-flink

stream.addSink(new FlinkKafkaProducer09<String>("Topic-name", new SimpleStringSchema(), 
properties));

FlinkkafkaProducer是否有回调或完成?

1 个答案:

答案 0 :(得分:1)

您可以尝试向制作人发送消息。

一旦发送消息,您就可以在其上写回调。认为这是一项昂贵的操作,你通常应该尽量避免它。

  

send()方法是异步的。调用时,它会将记录添加到a   待处理记录的缓冲区发送并立即返回。这允许   生产者将个别记录分组在一起以提高效率。

您可以查看其用法:

 ProducerRecord<byte[],byte[]> record = new ProducerRecord<byte[],byte[]>("the-topic", key, value);
producer.send(myRecord,
           new Callback() {
               public void onCompletion(RecordMetadata metadata, Exception e) {
                   if(e != null)
                       e.printStackTrace();
                   System.out.println("The offset of the record we just sent is: " + metadata.offset());
               }
           });

有关详细信息,请参阅documentation