当Kafka倒下时,我如何处理ioexception?

31moq8wy  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(301)

我正试图发布消息,而Apache·Kafka已经关机了。我该如何处理这样的紧急情况?
kafkaproducer::send()方法不会引发任何可以处理的异常。制作人接受了它们并记录了错误,所以我收到了大量这样的信息,一切都挂起,直到Kafka再次连接。

2014-03-31 09:38:23.752 ERROR o.a.kafka.common.network.Selector - Error in I/O: 
java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.7.0_51]
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739) ~[na:1.7.0_51]
    at org.apache.kafka.common.network.Selector.poll(Selector.java:205) ~[kafka-clients-0.8.1.jar:na]
    at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:212) [kafka-clients-0.8.1.jar:na]
    at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:150) [kafka-clients-0.8.1.jar:na]
    at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]
6psbrbz9

6psbrbz91#

呼叫 get() 在producer.send(…)返回的将来,或者如果不想阻止代码,请传递回调。 try { producer.send(new ProducerRecord("mytopic", key, value)) .get(); // block until acknowledged } catch(Exception e) { // handle message wasn't acknowledged }

thtygnil

thtygnil2#

我认为您可以做的一件事是使用try/catch记录所有 Throwable 在你的制作人代码里。

相关问题