[rabbitmq-discuss] fanout exchange that does not keep messages

Holger Hoffstätte holger.hoffstaette at googlemail.com
Mon Jul 20 17:51:51 BST 2009


Matthias Radestock wrote:
>> This is done with the "immediate" flag for a message; if there is no
>> recipient, the message will be dropped.
> 
> Actually, generally a better solution to the problem is to ensure that
> the queues do not outlive the consumers - by either marking them
> exclusive (if you only have one consumer per queue) or auto-delete.

Good point! Likely the better solution.

> And buffering can still take place to deal with temporarily
> backlogged/slow consumers. By contrast, with 'immediate' the messages
> will get dropped when the consumers are busy (not just when they are not
> present).

But what about when clients are half-dead, e.g. silently looping or
whatever, without disconnecting - especially in the case of
non-multithreaded clients like python/ruby etc.? Will the server only
buffer until the zombie consumer is killed for good (e.g. by a watchdog)
and then zap the backlog? Otherwise an undetected zombie can still gobble
up memory (or soon disk). I guess in that case only auto-expiry would help.

cheers
-h




More information about the rabbitmq-discuss mailing list