Hi<br><br>We are currently using RabbitMQ 1.7.0 and we'd like to move to 1.7.2 but we have noticed a fundamental behavior change across these versions. Let me explain:<br><br>1) Assume we have a cluster of RabbitMQ nodes... 'rabbit@host1' and 'rabbit@host2'<br>
2) 'client1' connects to 'rabbit@host1', declares an exchange 'test_x' and then declares a q 'test_queue' and binds to it.<br>3) 'client2' being of the same codebase as 'client1' on starting up connects to 'rabbit@host2' and does the same thing as 'client1'.<br>
<br>At this point of time, If we do a 'rabbitmqctl list_queues consumers name node' the response we get is:<br><br>2 test_queue rabbit@host1<br><br>Our reason for doing this was that a message sent to the 'test_x' exchange would be consumed by either of the clients.<br>
<br>Now.. <br><br>4) Assume 'rabbit@host1' node goes down (machine crash, becomes unreachable... whatever)<br>5) 'client1' detects the outage and tries connecting to 'rabbit@host2'... and the mq connection startup code kicks in.. thus.. the queue 'test_queue' is recreated on 'rabbit@host2'<br>
<br>Now... If we do a 'rabbitmqctl list_queues consumers
name node' the response we get is:<br>
<br>
1 test_queue rabbit@host2<br><br>As u can see we have only one consumer...<br><br>To fix this isuue... we get 'client1' to notify all other clients of a network outage.. 'client2' intercepts this message and promptly reconnects to 'rabbit@host2' and again binds to 'test_queue'.<br>
Everyone is happy...<br><br>Unfortunately... we have noticed that from 1.7.1, step 4 goes for a toss..<br><br>if 'rabbit@host1' goes down, 'client1' cannot recreate 'test_queue' on 'rabbit@host2'.<br>
Do this imply that... all queues created on the node WILL be unavailable for the duration of the nodes outage ??<br>Which means there wont be any consumers for messages sent to the exchange for the duration of the outage..<br>
<br>I was wondering if anybody could probably shed some light on :<br>1) Why this change in behaviour ?<br>2) What is the suggested approach to tackle these types of availability issues in rabbitMQ ?<br><br>Thanx in advance<br>
-Arun Suresh<br><br><br><br><br>