1

ご存知のように、メッセージの送信方法には同期と非同期の 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() で例外をキャプチャする方法は? 例外は定義されていないようです。誰かがそれを明確にするのを助けることができますか?

4

1 に答える 1