Matthew:<div><br></div><div>This is the best description of the intent of RabbitMQ clustering I have heard yet. Specifically, the distinction that RabbitMQ clustering is for high volume messaging, rather than HA concerns. Do you mind adding some of these points to the RabbitMQ clustering guide (<a href="http://www.rabbitmq.com/clustering.html">http://www.rabbitmq.com/clustering.html</a>)?</div>
<div><br></div><div>Steve</div><div><br><div class="gmail_quote">On Thu, Jan 7, 2010 at 2:38 AM, Matthew Sackman <span dir="ltr"><<a href="mailto:matthew@lshift.net">matthew@lshift.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi David,<br>
<br>
You're using the latest default code, yes?<br>
<br>
We've just changed the behaviour in this case - previously, yes, the<br>
queue would be recreated. This is incorrect because it then causes many<br>
problems when the failed node comes back up - you end up with the same<br>
queue on both nodes with different concepts of what should be in the<br>
queue. Exciting if undesireable things happen in this case.<br>
<br>
Thus if a queue is declared but it's found that the queue does already<br>
exist but is on a downed node, we return a 404, because it's really<br>
saying "the node on which this queue exists can't be found".<br>
<br>
>From your code, I see you're declaring the queue durable. This really<br>
reenforces the issue because if its durable, then persistent messages<br>
shouldn't be lost, and yet if you want to be able to recreate the queue<br>
on the other node, then it'll start empty, at which point, logically,<br>
the contents of the queue have been lost.<br>
<br>
In general, clustering should not be used for HA purposes. If you wish<br>
to achive HA, then active/passive HA can be achieved by using shared<br>
disk storage, heartbeat/pacemaker, maybe a tcp load balancer on the<br>
front, and make sure you set the node names to localhost, and point both<br>
rabbit instances at the same mnesia dir on the shared storage. When the<br>
passive node comes up, it will recover everything from the storage.<br>
<br>
Matthew<br>
<br>
_______________________________________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com">rabbitmq-discuss@lists.rabbitmq.com</a><br>
<a href="http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
</blockquote></div><br></div>