Do I tell the world to hit one node? Or many? Or load balance?

I have a nice, performant cluster of 5 nodes. They're all on separate
machines on the same switch. Life is good.

Now...

Do I tell the consumers of my Elasticsearch cluster to hit any of the five
nodes as suits their fancy? Or do I give them the name of ONE node? If so,
is that node configured any differently?

Or do I put all five behind a virtual IP and load balance them?

I can't find any documentation on best practices here.

Thoughts?

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/51237fd8-eefa-4d2b-9c1a-296dd391e98d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

It's really left up to you to decide.

Options are;

  • Load balancer like HAProxy, nginx
  • Multi entry DNS record (ie roundrobin)
  • Having a client join the cluster for inserts

There may be more others can suggest.

On 4 December 2014 at 07:19, Christopher Ambler const.dogberry@gmail.com
wrote:

I have a nice, performant cluster of 5 nodes. They're all on separate
machines on the same switch. Life is good.

Now...

Do I tell the consumers of my Elasticsearch cluster to hit any of the five
nodes as suits their fancy? Or do I give them the name of ONE node? If so,
is that node configured any differently?

Or do I put all five behind a virtual IP and load balance them?

I can't find any documentation on best practices here.

Thoughts?

--
You received this message because you are subscribed to the Google Groups
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/elasticsearch/51237fd8-eefa-4d2b-9c1a-296dd391e98d%40googlegroups.com
https://groups.google.com/d/msgid/elasticsearch/51237fd8-eefa-4d2b-9c1a-296dd391e98d%40googlegroups.com?utm_medium=email&utm_source=footer
.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAEYi1X8g5%2BWn8fYcH1HR%3DGahjz3V6dxr-W3ZNUMURX9zgpYDUA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

So you're saying, in essence, YES, I should try to balance search requests
across all nodes and not just one node.

The method may be debatable, but the underlying answer is YES, distribute
among machines.

(Just being sure I understand).

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/622e1a1a-5ed7-4cb3-8873-f993bea1d847%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

In our environment our cluster is inside EC2/VPC. We have an ELB in front of the cluster. We use DNS to assign a CNAME to the ELB for easier internal use. The cluster is currently at 15 nodes, 3 of which are “master only, no data” and associate themselves with the ELB. The ELB balances requests to/from the master nodes. The master nodes are slightly smaller in memory, but faster in CPU than the rest of the nodes so they can quickly serve requests. The rest of the nodes are “data only” nodes. They are not master eligible and they just store and serve data to/from the masters via the ELB.

This has worked really well for us, and also allows us to test rolling upgrades on a node that does not actually contain any data for faster confirmations.

From: elasticsearch@googlegroups.com [mailto:elasticsearch@googlegroups.com] On Behalf Of Christopher Ambler
Sent: Wednesday, December 03, 2014 12:53 PM
To: elasticsearch@googlegroups.com
Subject: Re: Do I tell the world to hit one node? Or many? Or load balance?

So you're saying, in essence, YES, I should try to balance search requests across all nodes and not just one node.

The method may be debatable, but the underlying answer is YES, distribute among machines.

(Just being sure I understand).

You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.commailto:elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/622e1a1a-5ed7-4cb3-8873-f993bea1d847%40googlegroups.comhttps://groups.google.com/d/msgid/elasticsearch/622e1a1a-5ed7-4cb3-8873-f993bea1d847%40googlegroups.com?utm_medium=email&utm_source=footer.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/5CF8216AA982AF47A8E6DEACA629D22B4EFD95A9%40s-us-ex-6.US.R5S.com.
For more options, visit https://groups.google.com/d/optout.

I'm curious why no data. Wouldn't having the data local mean faster lookups?

On Wednesday, December 3, 2014 1:14:10 PM UTC-8, Christian Hedegaard wrote:

In our environment our cluster is inside EC2/VPC. We have an ELB in
front of the cluster. We use DNS to assign a CNAME to the ELB for easier
internal use. The cluster is currently at 15 nodes, 3 of which are “master
only, no data” and associate themselves with the ELB. The ELB balances
requests to/from the master nodes. The master nodes are slightly smaller in
memory, but faster in CPU than the rest of the nodes so they can quickly
serve requests. The rest of the nodes are “data only” nodes. They are not
master eligible and they just store and serve data to/from the masters via
the ELB.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/a7b92cd3-1cd9-4d58-bb66-17e7aa02647b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.