[rabbitmq-discuss] previous connection is NOT automatically closed if IP different
Matthias Radestock
matthias at rabbitmq.com
Sat Nov 2 15:14:43 GMT 2013
On 02/11/13 13:39, L H, Wong wrote:
> Is there any way to ensure that the unacknowledged messages on the
> old connection are being re-queued immediately and being delivered to
> other consumer?
"immediately" when *what* happens?
If a client properly closes the rabbitmq connection (through the API or
even just doing a full TCP connection closure handshake) then messages
pending ack will get re-queued right at that point.
If, OTOH, there is just some network disruption then rabbit won't know
the connection is dead until various TCP-level timeouts kick in. That is
fundamental to the design of TCP.
AMQP heartbeats exist to give applications control over connection
liveness. So if you want to ensure dead connections get detected
promptly, then use a low AMQP heartbeat interval. The "any way" you are
looking for is exactly that. As Michael explained already.
> if I set the value to lower value like 10s it will consume more
> battery power and also cause higher data usage.
There is no other way to do this. Peers of a connection cannot magically
detect that the connection is dead. It requires either a positive signal
(such as controlled connection closure), or negative signal (absence of
any traffic for some duration of time).
Regards,
Matthias.
More information about the rabbitmq-discuss
mailing list