【发布时间】:2017-04-13 11:50:41
【问题描述】:
我使用 Kafka 0.10.1.0。
这是我的制作人:
val props: Properties = ...
val producer = new KafkaProducer[String, AnyRef](props)
val callback = new Callback {
override def onCompletion(md: RecordMetadata, e: Exception): Unit = ...
}
producer.send(new ProducerRecord[String, AnyRef]("topic", "hello"), callback)
但是上面的回调不能处理java.net.ConnectException: Connection refused,以防kafka-server宕机。
UPD
ConnectionException 在另一个线程中引发(进入Sender 类,该类用于KafkaProducer)。因此我们不能使用try {} catch。另外我不需要重试机制,我需要一种处理这种情况的方法(例如,如果 Kafka 宕机并且生产者无法发送消息,那么我将使用其他队列 API)。
有没有办法处理这个异常?
【问题讨论】:
标签: java scala apache-kafka kafka-producer-api