ご存知のように、メッセージの送信方法には同期と非同期の 2 種類があります。
同期モードでコーディングすると、コードは次のようになります。
producer.send(new ProducerRecord<Long, Event>(topicName, event)).get();
Kafka ドキュメントhttps://kafka.apache.org/10/javadoc/org/apache/kafka/clients/producer/KafkaProducer.html#send-org.apache.kafka.clients.producer.ProducerRecord-から読み取ると、次のように定義されます。続く:
public java.util.concurrent.Future<RecordMetadata> send(ProducerRecord<K,V> record)
Asynchronously send a record to a topic. Equivalent to send(record, null). See send(ProducerRecord, Callback) for details.
Specified by:
send in interface Producer<K,V>
つまり、基本的に send() メソッドは Futher を返し、この Future に .get() を使用すると、同期動作になります。
私の質問は、定義から、例外定義が表示されないことです。同期 send() で例外をキャプチャする方法は? 例外は定義されていないようです。誰かがそれを明確にするのを助けることができますか?