-
Notifications
You must be signed in to change notification settings - Fork 475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Connection recovery #163
Comments
👍 |
3 similar comments
👍 |
+1 |
+1 |
I'm going to have a go at implementing this. |
+1 |
@rikaardhosein Bunny (https://github.com/ruby-amqp/bunny) and the RabbitMQ Java client (https://github.com/rabbitmq/rabbitmq-java-client) may be good examples to follow. The latter is based on the former, I believe, but maybe have innovations. You can read my reservations and fears about auto-recovery in the issue #25. As MK points out there, the model in bunny/rabbitmq-java-client is pretty well proven by now, so perhaps my fears are unfounded. |
@squaremo @rikaardhosein the first client to implement automatic connection recovery was amqp gem. Then Bunny, then Java client and .NET. Note that Java client and Bunny have pretty different APIs, so their implementations differ moderately, but the main idea is the same. Bunny and the Java client are good examples to follow (in fact, replicate). |
Overall the ideas in Bunny and Java client have worked well for multiple clients in pretty different languages:
|
My desiderata:
|
Recovery is currently opt-in in Java and .NET clients. It is opt-out in Bunny. We haven't heard complaints about either decision but I agree. What do you mean by not relying on internal state? |
Anything but using the public mechanisms available; e.g., no examining buffers or spoofing channel numbers. I'm not ruling out maintaining bookkeeping state -- it'd be a bit tricky otherwise. And there may be exceptions where it's simply impossible to do something any other way. |
Agreed. Only a few bits of extra state should be necessary — messing with buffers or sockets beyond detecting network failures should not. |
My work on this is stalled until Saturday. I'll review these comments in On Wed, Jul 29, 2015 at 6:47 PM, Michael Bridgen [email protected]
|
Ok, I've taken a stab at fixing this whole reconnection problem. Check out https://github.com/benbria/node-amqp-connection-manager and see if it solves your use case. If it doesn't, or if you have suggestions, I'm certainly interested in hearing about it. :) |
+1 |
Is this still a wanted feature ? It seems lot of other clients handles this. The Java implementation even enables it by default now. |
the feature is very import!!! |
Duplicate of #25 |
It would be nice to have a reconnect options.
Looks like there is a Java implementation for that feature https://www.rabbitmq.com/api-guide.html#recovery
The text was updated successfully, but these errors were encountered: