Cluster, 3 severs (with 3 nodes) and I need coordinating node

(Juan) #1


I'm preparing the production platform and I have some mistakes. Now I have available 3 servers working with 3 ES nodes, but I need a coordinating node due a load balancing. I prefer coordinating node than DNS round robin and I can't do in client side. Also I have checked HAproxy and I prefer the ES solution.

Can one server act as data node and coordinating node at the same server? is it fine?

I know the best scenario is start with 3 nodes as follows, this is the config I have now and coordination node in another but I haven't more hardware inmediatly. My app is going to Node2 but with no balancing now, if node2 fails the app doesn't work. This is the actual config:

Node1: Cluster_mine "node1"
node.master: true true false ["node2", "node3"]
discovery.zen.minimum_master_nodes: 2

Node2: Cluster_mine "node2"
node.master: True true false ["node1","node3"]
discovery.zen.minimum_master_nodes: 2

Node3: Cluster_mine "node3"
node.master: true false false ["node1", "node2"]
discovery.zen.minimum_master_nodes: 2

Can anybody help me, please? How I can get load balancing and configure the cluster with the best roadmap?

thanks in advance

(Mark Walkom) #2

Why not the client?

By default a node is a master, data and coordinating node.

That's not needed these days.

(Juan) #3

"By default a node is a master, data and coordinating node." I donĀ“t understand it, if I call to any node does load balancing?

In client side we are using asp .NET and not an api due I didn't found any to do the call to ES. Here I have attached an example of our code.

byte[] byteArray = Encoding.UTF8.GetBytes(json); // Here goes the filters

    HttpWebRequest webRequest;
    HttpWebResponse webResponse;

    webRequest = (HttpWebRequest)WebRequest.Create(;
    webRequest.Credentials = CredentialCache.DefaultCredentials;
    webRequest.Method = WebRequestMethods.Http.Post;
    webRequest.ContentLength = byteArray.Length;

    webRequest.Accept = "application/json";
    webRequest.ContentType = "application/json";

Thanks and BR

(Mark Walkom) #4

No, nodes do not load balance.

Are you using our library? If not you should, it will handle things like load balancing for you.

(Juan) #5

Yes. I know the nodes doesn't do load balancing, is for this reason I'm thinking to put a ES node acting as coordinating mode (without data) to do load balancing.
Also I have checked to do with HAproxy or in our Citrix Netscaler but I prefere to avoid these solutions to not load other systems with additional work.

No. We are not using your library. We checked and for our app we prefer to create our own custom calls as I sent you. Now the app is working well and I need to go on production but I want high availability and load balancing in our nodes.

anything helping me about roadmap to follow? I need load balancing and high availability...

(Juan) #6

anybody can help me, Please?

I need to solve this situation to go to production!

If I haven't any answer I will try to put 3 nodes in a cluster for high availability and do the load balancing with the Netscaler...

(Mark Walkom) #7

Coordinating nodes do some degree of load balancing.

But if you aren't using our libraries, then the netscaler might be the best idea.

(Juan) #8


I will try to put another node acting as coordinating node. I will start with this solution. I will add a node to the cluster and it will be 4 nodes

thanks for your help!!

(Christian Dahlqvist) #9

If you need high availability, you should either connect to more than one node and distribute load like our client libraries do or use a load balancer. Having a single coordinating node will make this a single point of failure.

(Juan) #10

it's true... I have an alert in our application who tell me if the coordinating mode fails then the app change automatically the IP so the app point to another node...

(system) #11

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