[rabbitmq-discuss] Mirrored queue "requeue" un-acknolwedged message in failover

jimwu jwu2 at lifetouch.com
Thu Jul 12 17:02:58 BST 2012


I am new to rabbitMQ, and doing research and prototype on using rabbitMQ HA
mirrored queue for real-time control systems.  Setting up the cluster (using
2 physical hosts) and mirroed queue worked very well and smooth for us in
the protoptye.

However, the documented Mirrored Queue Behaviour during failover (re-queuing
of un-acknolwedged messages to the tail in the new master node) concerned
us.  If our app re-consumes past messges  during the failover, it may cause
unwanted/harmful action in the real-time systems.  

We can build "guard" in our applicaiton to check if we re-consume previous
messages; but that is almost prohibiting because the real-time systems can
have high volume messages related to different work stauts at any given
time. Littering the "guard" code and checking a previous state (even in
memory) is hard to engineer to achieve consistency, as the real-time systems
is is highly distributed.

Wonder if RabbitMQ broker can add a "flag" attaribute to the requeued
messages in failover, so our consumer application can see a requeued message
comoing. I imagine this can be done in RabbitMQ. Since the broker does the
work of requeuing already, it can (easily?) add a flag to those messges.  
That way, our app will have an easier time to handle requeued message.

Of course, I am open to advice if there are better/proven ways to handles
the requeued message in mirroed queue during fail over. 

Thanks for your input,


View this message in context: http://rabbitmq.1065348.n5.nabble.com/Mirrored-queue-requeue-un-acknolwedged-message-in-failover-tp20758.html
Sent from the RabbitMQ mailing list archive at Nabble.com.

More information about the rabbitmq-discuss mailing list