We have three nodes cluster on EC2 and in the pre-production phase we
need to interface with the cluster from our local network.
Unfortunately, we frequently get NoNodeAvailableException (we use JAVA
API). I have dug the group and tried almost everything and yes I am
sure we are using the same version of ES and at the moment we cannot
upgrade from 0.18.7 to 0.19.0 (the latest version at the time of
writing this down)
In order to fix this issue I want to create a service wrapper around
transport client to do health check prior to any queries to the
cluster. If the health check did not pass I have to reacquire the
cluster. But I foresee a problem! What would happen to the in progress
calls (the ones that were made and not returned prior to getting
NoNodeAvailableException! -- this could happen if you have a web-app
making tons of calls to ES through JAVA API)? Do they really matter? I
mean if NoNodeAvailableException is caught they would also go bad (I
am almost sure but need a nod for it)?
Please let me know what you think?