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

Reply via email to