I am tinkering with the java async producer from kafka 7.2 and I am trying to write a client that will never block when sending messages to a kafka broker (dropping them would be better than blocking). I can send messages at a rate that is fast enough to trigger a QueueFullException but the exception never propagates up to my client code. In other words, I see the stack trace and the error message on the console but the call to Producer.send() that triggered the exception just hangs indefinitely. In this setup, queue.enqueueTimeout.ms=0. I get the same result when I set queue.enqueueTimeout.ms to a very low number positive number. Is this the intended behavior? Is there another way to guarantee your client can never block? If I had to guess, maybe the exception is happening in a background thread of some kind and that is why I never see it? My knowledge of scala is extremely limited. Here is the code I am using:
https://gist.github.com/4081183 Thanks, Paul