Request routing to elastic nodes

My need: Have around 60K documents totalling 300MB. There will be writes/updates but volume wouldn't be high. GET requests would be high and I need to ensure high availability and high performance.

My prototype design: I have a Java client (microservice containers on Kubernetes) and using org.elasticsearch.client.RestClient to fire http requests to the elasticsearch node using IP address of the node (RestClient.builder(new HttpHost(elasticsearchHost, elasticsearchPort, "http"))).

Production design: After going through documentation, I thought I can have 3 nodes with 2 master eligible nodes (each node has 1 shard and 1 replica; each node - 16GB RAM, 6VCPUs). I am NOT planning to segregate master, node and ingest nodes as my document volume is not too high.

Problem statement: How do I modify my RestClient to send the http requests in a load balanced way (round robin fashion) to each of three nodes.

As this is my first venture into elasticsearch, I seek guidance from experts in this forum to validate if my production configuration looks optimized, and also how do I get to a solution over my problem statement.

That's bad, see https://www.elastic.co/guide/en/elasticsearch/guide/2.x/important-configuration-changes.html#_minimum_master_nodes

Pretty sure our clients handle load balancing if you list multiple hosts.

Thank. I realized I could add multiple IPs in the RestClient call leaving it to handle the load balancing.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.