Kafka系列2:深入理解Kafka生产者( 七 )

对于吞吐量要求比较高的应用来说 , 又要同时保证服务的可靠性 , 发送并忘记方式可靠性较低 , 但同步发送方式又会降低吞吐量 , 这就需要异步发送消息的方式了 。 大多数时候 , 生产者并不需要等待响应 , 只需要在遇到消息发送失败时 , 抛出异常、记录错误日志 , 或者把消息写入“错误日志”文件便于以后分析 。 代码样例如下:

ProducerRecord<String String> record = new ProducerRecord<>(\"Topic\" \"k\" \"v\");
// 异步发送消息 , 并监听回调
producer.send(record new Callback() { // 1
@Override
public void onCompletion(RecordMetadata metadata Exception exception) { // 2
if (exception != null) {
// 进行异常处理
else {
System.out.printf(\"topic=%s partition=%d offset=%s \\n\" metadata.topic() metadata.partition() metadata.offset());


);

  1. 从上面代码可以看到 , 为了使用回调 , 只需要实现一个org.apache.kafka.clients.producer.Callback接口即可 , 这个接口只有一个onComplete方法 。

    推荐阅读