Beginner question about topology


(Andy Davies) #1

Hi all,

I'm sorry if this is a totally beginner question with a obvious answer, but
I just haven't found anything that explains this clearly, most tutorials
don't cover this sort of thing. We're investigating the use of Elastic
Search and was wondering what the best topology would be. My reading has
led me to think that to start with the best thing to do would be to have 2
nodes that are on their own machines and store the data, then on each of
our web servers we would have a non-data node that are used to handle the
querying and indexing requests, and pass these onto the appropriate data
node. Does this sound sensible?

The reasoning for this is that we have a RESTful service that will be
called from external apps, and we need these to talk to the cluster as a
whole, rather than an individual machine in case it goes down. Essentially
the non-data nodes are the load-balancers. The only other option I can
think of is using a load-balancer to provide the virtual IP address that
the RESTful service calls directly - but why would I do that if elastic can
handle this already?

Any thoughts and advice would be most welcome!

--
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/0274a88c-9cda-4462-be28-cd054e443b2c%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(Binh Ly-2) #2

Your idea sounds reasonable. The only thing to be aware of is client nodes
generally need to run the same version of ES and also Java version as the
server/data nodes. Also you'll need to maintain an IP list in each client
node for it to see the server/data nodes in the case of unicast discovery.
This may or may not matter but you'd need to take care of these in
deployment or when you do upgrades.

--
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/7c7e1419-4f46-46e8-892b-86379e54419f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


(Andy Davies) #3

Thanks for the reply. There shouldn't be a problem in keeping the ES and
Java versions in sync. We're a .Net app so we would be totally free to run
whatever version of Java required. We're preparing to maintain the list of
nodes anyway as apparently our host doesn't allow for multi-casting, so
that's not something we wouldn't encounter anyway.

Cheers

On Thursday, 6 March 2014 23:36:42 UTC, Binh Ly wrote:

Your idea sounds reasonable. The only thing to be aware of is client nodes
generally need to run the same version of ES and also Java version as the
server/data nodes. Also you'll need to maintain an IP list in each client
node for it to see the server/data nodes in the case of unicast discovery.
This may or may not matter but you'd need to take care of these in
deployment or when you do upgrades.

--
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/52d0d8ac-e247-4803-a9df-1d23fac52a62%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


(system) #4