I occasionally am getting some batch send errors from the stock async producer. This is on a cluster of 3 kafka (0.7.2) and 3 zookeeper nodes. Is there anyway to check what happens when those batch errors occur? Or bump up the retry count? (looks like it only did a single retry).
I need the speed of the async producer, but it needs to be reliable (I see a handful of these a day but in a weather alerting system it only takes missing one let alone 25 or 100/1000). Here's a stack trace of one of the errors that I'm seeing. 22:23:39.405 [ProducerSendThread-1824508747] WARN k.p.a.DefaultEventHandler - Error sending messages, 0 attempts remaining java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcher.writev0(Native Method) ~[na:1.6.0_24] at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:33) ~[na:1.6.0_24] at sun.nio.ch.IOUtil.write(IOUtil.java:125) ~[na:1.6.0_24] at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:367) ~[na:1.6.0_24] at java.nio.channels.SocketChannel.write(SocketChannel.java:360) ~[na:1.6.0_24] at kafka.network.BoundedByteBufferSend.writeTo(BoundedByteBufferSend.scala:49) ~[apns-consumer-1.0.jar:na] at kafka.network.Send$class.writeCompletely(Transmission.scala:73) ~[apns-consumer-1.0.jar:na] at kafka.network.BoundedByteBufferSend.writeCompletely(BoundedByteBufferSend.scala:25) ~[apns-consumer-1.0.jar:na] at kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:95) ~[apns-consumer-1.0.jar:na] at kafka.producer.SyncProducer.send(SyncProducer.scala:94) ~[apns-consumer-1.0.jar:na] at kafka.producer.SyncProducer.multiSend(SyncProducer.scala:135) ~[apns-consumer-1.0.jar:na] at kafka.producer.async.DefaultEventHandler.send(DefaultEventHandler.scala:58) [apns-consumer-1.0.jar:na] at kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:44) [apns-consumer-1.0.jar:na] at kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThread.scala:116) [apns-consumer-1.0.jar:na] at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:95) [apns-consumer-1.0.jar:na] at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:71) [apns-consumer-1.0.jar:na] at scala.collection.immutable.Stream.foreach(Stream.scala:260) [apns-consumer-1.0.jar:na] at kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThread.scala:70) [apns-consumer-1.0.jar:na] at kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:41) [apns-consumer-1.0.jar:na] 22:23:39.406 [ProducerSendThread-1824508747] ERROR k.p.a.ProducerSendThread - Error in handling batch of 27 events java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcher.writev0(Native Method) ~[na:1.6.0_24] at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:33) ~[na:1.6.0_24] at sun.nio.ch.IOUtil.write(IOUtil.java:125) ~[na:1.6.0_24] at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:367) ~[na:1.6.0_24] at java.nio.channels.SocketChannel.write(SocketChannel.java:360) ~[na:1.6.0_24] at kafka.network.BoundedByteBufferSend.writeTo(BoundedByteBufferSend.scala:49) ~[apns-consumer-1.0.jar:na] at kafka.network.Send$class.writeCompletely(Transmission.scala:73) ~[apns-consumer-1.0.jar:na] at kafka.network.BoundedByteBufferSend.writeCompletely(BoundedByteBufferSend.scala:25) ~[apns-consumer-1.0.jar:na] at kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:95) ~[apns-consumer-1.0.jar:na] at kafka.producer.SyncProducer.send(SyncProducer.scala:94) ~[apns-consumer-1.0.jar:na] at kafka.producer.SyncProducer.multiSend(SyncProducer.scala:135) ~[apns-consumer-1.0.jar:na] at kafka.producer.async.DefaultEventHandler.send(DefaultEventHandler.scala:58) ~[apns-consumer-1.0.jar:na] at kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:44) ~[apns-consumer-1.0.jar:na] at kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThread.scala:116) [apns-consumer-1.0.jar:na] at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:95) [apns-consumer-1.0.jar:na] at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:71) [apns-consumer-1.0.jar:na] at scala.collection.immutable.Stream.foreach(Stream.scala:260) [apns-consumer-1.0.jar:na] at kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThread.scala:70) [apns-consumer-1.0.jar:na] at kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:41) [apns-consumer-1.0.jar:na]