> This reconnect interval should help quite a bit. I especially would like theI wonder if it should eventually give up? In the case of an incorrect
> exponential (or linear, at least) intervals.
auth, it will never succeed right?
> I've also noticed that there's no way to throttle subscription callbacks. IThe best way to deal with this is via prefetch.
> don't know if this is something exactly necessary, but it could be nice to
> be able to say "I only want to process 2,500 messages per second" or
> something similar.
We've seen this problem as well, and it's an inherent problem in the
AMQP spec, so unfortunately that problem can only be solved by
reducing the time. RabbitMQ can choose to implement some sort of rate
limit according to the spec, but so far it doesn't. For me giving up
at some point is not the greatest idea, because then I'll have to go
out and restart all clients manually once the problem is fixed. We've
been using this patch with some success:
http://github.com/peritor/amqp/commit/f33bda9f97fa34ae63ec73138e197bd22856440c
http://github.com/brontes3d/amqp/commit/4b45b43b5eaea5a5e3b35b26aaf7c2cc4c21f9ed
But I agree an incremental backoff would be better.
We also wanted to be able to specify fallback_servers in the
configs... so if one server in the network of RabbitMQ servers was
unavailable the client would try the next one in the list:
http://github.com/brontes3d/amqp/commit/c55cb344dcabf04203417f3d07ea1de9ba08b4f8
Also with multiple servers, Rabbit likes to try and load balance for
us, for that to work we need to handle
AMQP::Protocol::Connection::Redirect
http://github.com/brontes3d/amqp/commit/a0b8aba8c495fd4f0d1dc3d49f8af2eb0e38a6bc
If you merge any of these, be sure to get the fixes to them committed later :-)
http://github.com/brontes3d/amqp/commits/master/
thanks,
Jacob
> We have chosen to solve reconnect flooding in our fork with :max_retry
> and :reconnect_timer config options:
>
> http://github.com/brontes3d/amqp/commit/4b45b43b5eaea5a5e3b35b26aaf7c2cc4c21f9ed
>
> But I agree an incremental backoff would be better.
>
> We also wanted to be able to specify fallback_servers in the
> configs... so if one server in the network of RabbitMQ servers was
> unavailable the client would try the next one in the list:
>
> http://github.com/brontes3d/amqp/commit/c55cb344dcabf04203417f3d07ea1de9ba08b4f8
>
> Also with multiple servers, Rabbit likes to try and load balance for
> us, for that to work we need to handle
> AMQP::Protocol::Connection::Redirect
>
> http://github.com/brontes3d/amqp/commit/a0b8aba8c495fd4f0d1dc3d49f8af2eb0e38a6bc
>
> If you merge any of these, be sure to get the fixes to them committed later :-)
>
> http://github.com/brontes3d/amqp/commits/master/
>
Sweet, sweet patches you made there.
My +1 to get all of them into 0.7.0. Great improvements.