[rabbitmq-discuss] Scenario ideas

Pete Kelly pkelly at gmail.com
Tue Aug 16 20:58:29 BST 2011


Hi

I have been playing with rabbitmq and am thinking through some common
scenarios I think I will need to deal with, I was wondering if anyone would
be able to take the time to read my thoughts and validate them or throw a
few more options in/give me some article links?

I have a topic exchange and need to attach some consumers to process
messages.

If I attach a consumer with no queue name, a unique one time queue will be
created and I can bind the exchange to this queue using a routing key like
'animal.mammals.#'.

This is great until

- the consumer crashes, meaning the exchange will drop all messages (or they
get rejected depending on the publish settings I use)
or
- I need another consumer to process animals.mammals.#, which I can't do as
I am using a one time queue and adding another will mean each message is
delivered to 2 queues.

Are the above assumptions correct?


So my second option is to use a named queue. I attach a consumer with a
queue name and bind the exchange to this queue using a routing key like
'animal.mammals.#'.

Now if I need another consumer I simply bring another one up and attach it
to the same queue name, and they get the messages in round robin which is
great.

What's not so great is if I then decide to attach a consumer to this queue
name (maybe by accident) and bind the exchange to a routing key
'animal.mammals.rabbit'

Then the queue gets 2 copies of each message. Is there any way to avoid this
other than careful management of bindings? Maybe a way of telling the
exchange to only deliver the message once to a given queue?

My worry is developers who will create bindings willy nilly without
realising the consequences of what is happening.


Any help would be appreciated, I am just trying to piece what's happening
together in my mind at the moment so I can understand what's happening in
the background.

Thanks

Pete
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20110816/7914d3b7/attachment.htm>


More information about the rabbitmq-discuss mailing list