[rabbitmq-discuss] RabbitMQ mirrored queues and node failure
Major Hayden
major at mhtx.net
Wed Nov 16 21:44:45 GMT 2011
Hey there,
I'm looking at using the mirrored queue functionality in RabbitMQ cluster and I had a question about node failure and what happens to the messages in the queues.
Here's an example: consider you have node A, B, and C (all disk nodes) and a single durable mirrored queue. They start like this:
node A: 10 messages in the 'foo' queue
node B: 10 messages in the 'foo' queue
node C: 10 messages in the 'foo' queue
Let's say node C is in a rack that loses power and it drops offline. We end up with this:
node A: 10 messages in the 'foo' queue
node B: 10 messages in the 'foo' queue
node C: offline
While repairs are being made to C's rack, consumers still talk to nodes A and B to pick up and drop off messages. Let's say the queues on A and B are reduced to zero several times while C is offline and then C comes back online:
node A: has a bunch of messages node C has never seen
node B: has a bunch of messages node C has never seen
node C: back online with the 10 messages it had before it failed?
What I'm interested to know is:
1) Does C come back up with the 10 messages that it had on it before it failed?
2) What happens to those 10 stale, old messages that node C had on it before it failed (that were already picked up from nodes A and B by consumers)?
Thanks in advance for the the help and I apologize if I misunderstood the documentation[1]!
[1] http://www.rabbitmq.com/ha.html#behaviour
--
Major Hayden
major at mhtx.net
More information about the rabbitmq-discuss
mailing list