we have machines/network where some network connections might have slightly higher latency due to the required setup of the hardware. The Client applications are spread out across the network and connect to one of the available Elasticsearch nodes.
We expect that overall query duration would be lower, if the Client would choose the "fastest" node instead of a random one, similar to adaptive replica selection as described at https://www.elastic.co/blog/improving-response-latency-in-elasticsearch-with-adaptive-replica-selection, only for the communication of the Java Client with a server node.
Because of this, we would like to explore options to make Elasticsearch Client aware of the connect-speed so it can choose the fastest node, not a random one.
Is there anything that we can use to achieve this? The TransportClient doesn't seem to have such a feature, but could it be added on top of it?
One way that we found would be to use NodeClient instead of TransportClient in our application and this way be able to use adaptive replica selection from the local NodeClient to the data nodes, or?