Kafka中FutureRecordMetadata future 怎么获取回调函数判断是否发送成功
在Kafka中,可以通过调用Future对象的get()方法来获取RecordMetadata对象,并在获取到RecordMetadata对象后判断其是否存在异常来判断消息是否发送成功。
例如:
ProducerRecord<String, String> record = new ProducerRecord<>("my_topic", "key", "value");
Future<RecordMetadata> future = producer.send(record);
try {
RecordMetadata metadata = future.get();
if (metadata != null) {
System.out.println("Message sent successfully!");
} else {
System.out.println("Message failed to send!");
}
} catch (InterruptedException | ExecutionException e) {
System.out.println("Error while sending message: " + e.getMessage());
}
在上面的代码中,我们先创建了一个ProducerRecord对象,然后通过Producer对象的send()方法发送消息,并获取Future对象。接着,我们调用Future对象的get()方法获取RecordMetadata对象,如果RecordMetadata对象不为null,则表示消息发送成功;否则,表示消息发送失败。最后,我们在catch块中捕获异常,并输出错误信息
原文地址: https://www.cveoy.top/t/topic/fdvA 著作权归作者所有。请勿转载和采集!