<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 20, 2013 at 5:00 AM, <span dir="ltr"><<a href="mailto:rabbitmq-discuss-request@lists.rabbitmq.com" target="_blank">rabbitmq-discuss-request@lists.rabbitmq.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><pre style="color:rgb(0,0,0);word-wrap:break-word;white-space:pre-wrap">
> 2) Ensure that the master queue processes are spread out evenly across
> the available nodes.
...in combination with ensuring that there are no more mirrors than you
actually need in order to get the desired level of redundancy. I.e. use
the 'exactly' ha-mode rather than 'all'. Otherwise you are wasting
valuable resources on keeping superfluous slaves up to date.
</pre></blockquote><div><br></div><div style>It would be useful to automate the intelligent placement of queue mirrors for such multi-queue set ups so that related HA queues are spread across nodes in the cluster while minimizing their overlap.</div>
<div style><br></div><div style>You could add an argument to queue declaration that is a queue meta-name. Related queues would share the same meta-name. E.g. if you wanted to created HA queues using the "exactly" ha-mode named incoming1 and incoming2, you could use a meta-name of "incoming". RMQ would then attempt to place the mirrors on different nodes. E.g. in a four node cluster with exactly == 2, it would place one mirrors on each node without any overlap.</div>
<div style><br></div><div style>As it is, I don't believe exactly provides any guarantee as to where mirrors will be located, so the mirrors of your two queues could be placed on the same nodes creating hot spots.</div>
<div style><br></div><div style><br></div><div style><br></div></div></div></div>