[rabbitmq-discuss] Lack of Ack, Failure and Re-delivery
Bell, Paul M.
pbell at syncsort.com
Sat Jan 21 21:57:55 GMT 2012
Suppose I have a producer on NodeP, a broker on NodeB, and a consumer on NodeC. Suppose further that explicit acks are required (i.e., if I've understood the docs, that "noack" is not in effect) and that after consuming a message from the queue, NodeC.consumer dispatches some other work in order to process that message. IOW: NodeC.consumer doesn't respond immediately with an ack.
So, from NodeB.broker's point of view, the message has been moved from the exchange to the queue, consumed, but not yet ack-ed.
What will happen under these two scenarios:
1. NodeB.broker bounces - when broker restarts what will he do with un-acked messages that have been delivered to queue and haven't been ack-ed; e.g., will these be again delivered to the queue?
2. NodeC.consumer bounces - when consumer restarts is there any way he can again consume the un-acked message, and begin again the work that this message represents? (I suppose that NodeB.broker might be implicated here because it might detect the loss of connection to the NodeC.consumer....).
When I say "bounces," I mean at a minimum that the application (broker, consumer) crashed and restarted. But I am also interested in the case where the node's OS is for whatever reason rebooted. Perhaps it looks no different.
Thanks for your help.
The information contained in this message (including any files transmitted with this message) may contain proprietary, trade secret or other confidential and/or legally privileged information. Any pricing information contained in this message or in any files transmitted with this message is always confidential and cannot be shared with any third parties without prior written approval from Syncsort. This message is intended to be read only by the individual or entity to whom it is addressed or by their designee. If the reader of this message is not the intended recipient, you are on notice that any use, disclosure, copying or distribution of this message, in any form, is strictly prohibited. If you have received this message in error, please immediately notify the sender and/or Syncsort and destroy all copies of this message in your possession, custody or control.
More information about the rabbitmq-discuss