kafkaは、どのように送信の成功を判断していますか。

Kafka において、プロデューサーがメッセージを送信すると、メッセージの送信成功判定として、以下のような手段があります。

  1. 送信する
  2. 送信
  3. レコードメタデータ
ProducerRecord<String, String> record = new ProducerRecord<>("topicName", "key", "value");
try {
    RecordMetadata metadata = producer.send(record).get();
    System.out.println("消息发送成功,offset:" + metadata.offset());
} catch (Exception e) {
    System.out.println("消息发送失败:" + e.getMessage());
}
  1. 送信する
ProducerRecord<String, String> record = new ProducerRecord<>("topicName", "key", "value");
producer.send(record, new Callback() {
    @Override
    public void onCompletion(RecordMetadata metadata, Exception e) {
        if (e != null) {
            System.out.println("消息发送失败:" + e.getMessage());
        } else {
            System.out.println("消息发送成功,offset:" + metadata.offset());
        }
    }
});

送信方式が同期か非同期かに関わらず、送信に失敗した場合は、例外情報よりエラー処理を行うことができる。

bannerAds