-
Notifications
You must be signed in to change notification settings - Fork 55
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
How to Check Connection Health #101
Comments
One way to check connection health would be to mimic the management plugin aliveness test, that is declaring a health queue, publishing and consuming a message from this queue. The queue could be exclusive to the connection, as this is a client-oriented test. There's everything needed in the |
So, if I understand correctly this involves:
Sounds straightforward enough, but maybe not as simple as I'd like. Given a |
It could be a UUID or indeed something related to the connection name.
Pretty much, quite easy with a CountDownLatch for example.
Yes, I was thinking applications would call this health check, just like external monitoring systems can query Spring Boot HTTP health check endpoints.
Yes.
Not in Reactor RabbitMQ, to avoid an hard dependency on Spring.
There's |
In the process of switching from "out of the box" Spring Boot support for AMQP to using reactor-rabbitmq to more easily tie in to an existing reactor/webflux powered backend. The project reactor programming model gives me a lot of power, but I'm loosing a features that spring-amqp brings that I'm curious the best way to bring back.
In particular, I want to tie in to the health-check mechanism of Spring Boot by implementing a Reactive Health Indicator, but I'm having trouble figuring out the best way to check the status of a Sender's underlying connection. The transparent reconnect being invisible to senders is great, but I'd like the health endpoint to reflect even transient connection drops, but I'm not sure how to implement it.
Any feedback would be hugely appreciated.
The text was updated successfully, but these errors were encountered: