activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <>
Subject handling slow consumers on non-persistent topics and AMQ-688
Date Mon, 03 Jul 2006 18:50:01 GMT
While perusing JIRA I spotted this issue again...
I know its an issue close to folks at Amazon's hearts.

Dealing with slow consumers is a fascinating problem for a messaging
system; its quite a tricky problem :). Here's some background on the

together with the currently supported features - to allow messages to
be discarded on slow consumers using a pluggable algorithm...

Now for all consumers we fill up prefetch buffers as quickly as possible...

so there's always a buffer of messages per consumer. For non-durable
topics once these messages are written to a socket they are evicted
from RAM; so we already have some support for slow consumers.

I wanted to start a discussion on both AMQ-688 and to see if folks had
other requirements for handling slow consumers & to try decide what
features & stragegies we should add next in this area.

One of the first requirements folks ask for is that rather than
blocking permanently the non-persistent topic engine until RAM is
cleared, that at a certain threshhold we start spooling to disk. I've
raised a separate JIRA issue for this specific feature request...

Another issue some folks have hit in the past is that for high
performance and to minimise context switches in the broker, we tend to
use the current thread in the broker to dispatch to all the
non-durable topic consumers so a slow/blocked consumer can appear to
'block' the producer.

I've raised this issue to track that feature

I just wondered if folks had any other issues or requirements with the
whole slow consumers and non-durable topics they'd like to discuss? Is
there any requirements we won't have covered if the above two JIRAs
are fixed


View raw message