[rabbitmq-discuss] basic design question

Isaac Cambron icambron at gmail.com
Wed Apr 22 00:21:43 BST 2009


I'm a complete newbie to RabbitMQ and, really, messaging in general. I'm
trying to solve what seems like a simple problem, but am overwhelmed with
the number of moving parts: exchanges, bindings, queues, etc. Maybe someone
can sketch, at a high level, how my system should fit together.

I have a client that will publish a bunch of tasks to execute - tasks A, B,
C, D, E. I have a pool of machines that, individually, know how to do some
subset of the tasks. For example, let's say that machine 1 can do A, B, and
C, and machine 2 can do C, D, and E. A machine can only do one task at a
time, and I only want one machine to do any particular task. Tasks can wait
indefinitely until there's a free machine capable of executing it.

I'm not sure what pieces go where. Do I create one queue per task? (If so,
how will I make the machines only respond to one message from any queue at a
time?) Or do I make the tasks different routing keys and have one big queue?
(If so, how will I make a machine only subscribe to particular tasks?). In
general, how do I map the concepts in AMPQ to the concepts in my problem?

Any advice would help enormously.

Thanks,
Isaac
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090421/2c5d23a3/attachment.htm 


More information about the rabbitmq-discuss mailing list