Neha Narkhede 2012-11-15, 22:30
This behavior is unexpected and the code suggests QueueFullException
is thrown back to the caller. I would take a thread dump when the
producer is blocked to see what's causing the blocking behavior.
On Thu, Nov 15, 2012 at 12:53 PM, Paul Mackles <[EMAIL PROTECTED]> wrote:
> 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: