I have just started with elasticsearch, have setup a cluster with 4
data/master nodes. everything pretty default. The nodes are called E1, E2,
E3 and E4.
I have implemented a few pieces of client software, and doing RESTful
communication against http://E1:9200/ is super easy.
But how are the clients supposed to address the cluster? Pointing directly
to a specific cluster node seems not right, that particular node might be
down. Also, configuring all clients with knowledge about all cluster nodes
seems impractical too.
Of cause I could setup old-school round robin DNS. Is that the way to do it
or do we have smarter options?
Ah yes, I'm using python and the elasticsearch module. Everything is on
linux.
Most (all?) of the official clients have connection pool support that will
query the cluster status and round robin across all the nodes with client
capability enabled.
I have just started with elasticsearch, have setup a cluster with 4
data/master nodes. everything pretty default. The nodes are called E1, E2,
E3 and E4.
I have implemented a few pieces of client software, and doing RESTful
communication against http://E1:9200/ is super easy.
But how are the clients supposed to address the cluster? Pointing directly
to a specific cluster node seems not right, that particular node might be
down. Also, configuring all clients with knowledge about all cluster nodes
seems impractical too.
Of cause I could setup old-school round robin DNS. Is that the way to do
it or do we have smarter options?
Ah yes, I'm using python and the elasticsearch module. Everything is on
linux.
The only thing to keep in mind is that if the node is down you should just
retry on another one. The client might handle that for you, I dunno. its
important though because you don't want to lose 1/4 of your traffic when
you restart a node.
Nik
On Thu, Dec 11, 2014 at 3:11 PM, Nick Canzoneri nick@wildbit.com wrote:
Most (all?) of the official clients have connection pool support that will
query the cluster status and round robin across all the nodes with client
capability enabled.
I have just started with elasticsearch, have setup a cluster with 4
data/master nodes. everything pretty default. The nodes are called E1, E2,
E3 and E4.
I have implemented a few pieces of client software, and doing RESTful
communication against http://E1:9200/ is super easy.
But how are the clients supposed to address the cluster? Pointing
directly to a specific cluster node seems not right, that particular node
might be down. Also, configuring all clients with knowledge about all
cluster nodes seems impractical too.
Of cause I could setup old-school round robin DNS. Is that the way to do
it or do we have smarter options?
Ah yes, I'm using python and the elasticsearch module. Everything is on
linux.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.