stream.addSink(new FlinkKafkaProducer09<String>("Topic-name", new SimpleStringSchema(),
properties));
FlinkkafkaProducer是否有回调或完成?
答案 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。