Apparently in an HA environment with mirrored queues, RabbitMQ will cancel all consumers for a given queue in the event of a failure on the queue's primary node. This is the case even if there are consumers attached to the mirrored node. Clients can opt to accept a header,
to receive a notification of a cancellation scenario. The client can then opt to resume consumption of messages from the mirrored queue, now primary.
See http://www.rabbitmq.com/consumer-cancel.html for help understanding the consumer cancellation behavior in RabbitMQ.
See https://gist.github.com/dblessing/a9d5a68da56eb451553a for replication instructions.
For the above resources see the "Consumer Cancellation" portions.