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.<br>
<br>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.<br>
<br>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?<br>
<br>Any advice would help enormously.<br><br>Thanks,<br>Isaac<br>