<div dir="ltr">You should look at the 'consistent-hash-exchange': <a href="http://www.rabbitmq.com/plugins.html">http://www.rabbitmq.com/plugins.html</a><div><br></div><div>By either using the user id as the routing key or by setting a header to the user id, messages w a particular user id will always get routed to the same queue.</div>
<div><br></div><div>Hopefully your input is nicely distributed across the user id space. If not, there is more work required.</div><div><br></div><div>ml</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Sun, Jul 13, 2014 at 11:41 AM, Sean Joyce <span dir="ltr"><<a href="mailto:seanmjoyce@gmail.com" target="_blank">seanmjoyce@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I have a scenario where one producer publishes a stream of messages to an exchange. The exchange has 10 queues (there is an upper limit to the amount of parallel work that can be done - e.g. Database bottleneck) that it routes messages to. The messages can really go to any queue with one exception: only one message with a given user id can be processed at a time. <div>

<br></div><div>All messages with that user id should be routed to the same queue. If there was no database bottleneck I would create a new queue for each user id but I can really only process ten messages at a time. </div>

<div><br></div><div>I had thought of partitioning the user ids across ten queues but there is no guarantee the incoming messages would be evenly distributed even with different user ids. Thus I could have queues 1,4 and 8 with a backlog while the rest are idle resources. </div>

<div><br></div><div>Any tips on a defined pattern that solves this type of problem so that any message for a given user id can go to any queue but messages with the same user id always go to the same queue?</div><span class="HOEnZb"><font color="#888888"><div>
<br>
</div><div>-Sean</div>
</font></span><br>_______________________________________________<br>
rabbitmq-discuss mailing list has moved to <a href="https://groups.google.com/forum/#!forum/rabbitmq-users" target="_blank">https://groups.google.com/forum/#!forum/rabbitmq-users</a>,<br>
please subscribe to the new list!<br>
<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>
<a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
<br></blockquote></div><br></div>