如您所知,发送消息有两种方式——同步和异步。
当我们使用同步模式编码时,代码如下所示
producer.send(new ProducerRecord<Long, Event>(topicName, event)).get();
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,然后一旦我为这个未来使用 .get() ,它就会变成同步行为。
我的问题是,从定义上看,我没有看到异常定义,如何在同步send()下捕获异常?似乎没有定义任何例外。有人可以帮助澄清吗?