Http loadbalancers vs smart elasticsearch loadblalncers


(Piavlo) #1

Hi,

There is elasticsearch cluster and app running on elastic size
webfarm which need to access the elasticsearch cluster.

Initially I was thinking to run haproxy locally on each webserver in
the farm.
But running elasticsearch with no data as smart loadbalancer is very
attractive.
So I want to under stand if it's a good idea to run it in the
following setup.

I want to run elasticsearch with node.data set to false on each
webserver node.
From documentation it is not clear which role these nodata
elasticsearch nodes play in Gateway module recovery.

Say there is a cluster of 3 nodes with replication=1 and

gateway:
type: local
recover_after_nodes: 2
recover_after_time: 1m
expected_nodes: 3

Since the nodata elasticsearch nodes is dynamic and it's also not
clear if such nodes have effect on the recovery, is the above gateway
configuration stays the same or should be changed?

Any other issues I need to consider?

Thanks
Alex
||||


(Weiwei Wang) #2

i use node(client=true) for my web service and it works fine.

According to the user guide, use this kind of es client can make index
faster, but nothing mentioned about the query performance.

Another problem for this kind of usage is that if i shutdown the
cluster using curl 'localhost:9200/_shutdown' my app run under tomcat
will also be shutdown and tomcat is also down:(

On Dec 14, 2:26 pm, Piavlo lolitus...@gmail.com wrote:

Hi,

There is elasticsearch cluster and app running on elastic size
webfarm which need to access the elasticsearch cluster.

Initially I was thinking to run haproxy locally on each webserver in
the farm.
But running elasticsearch with no data as smart loadbalancer is very
attractive.
So I want to under stand if it's a good idea to run it in the
following setup.

I want to run elasticsearch with node.data set to false on each
webserver node.
From documentation it is not clear which role these nodata
elasticsearch nodes play in Gateway module recovery.

Say there is a cluster of 3 nodes with replication=1 and

gateway:
type: local
recover_after_nodes: 2
recover_after_time: 1m
expected_nodes: 3

Since the nodata elasticsearch nodes is dynamic and it's also not
clear if such nodes have effect on the recovery, is the above gateway
configuration stays the same or should be changed?

Any other issues I need to consider?

Thanks
Alex
||||


(Shay Banon) #3

In your "proxy" elasticsearch nodes you can either set:

node.client: true

Or

node.data: false
node.master: false

(node.client is preferable).

They won't play a part in the recover_after_nodes / expected nodes setting
in the gateway.

On Wed, Dec 14, 2011 at 8:26 AM, Piavlo lolitushka@gmail.com wrote:

Hi,

There is elasticsearch cluster and app running on elastic size
webfarm which need to access the elasticsearch cluster.

Initially I was thinking to run haproxy locally on each webserver in
the farm.
But running elasticsearch with no data as smart loadbalancer is very
attractive.
So I want to under stand if it's a good idea to run it in the
following setup.

I want to run elasticsearch with node.data set to false on each
webserver node.
From documentation it is not clear which role these nodata
elasticsearch nodes play in Gateway module recovery.

Say there is a cluster of 3 nodes with replication=1 and

gateway:
type: local
recover_after_nodes: 2
recover_after_time: 1m
expected_nodes: 3

Since the nodata elasticsearch nodes is dynamic and it's also not
clear if such nodes have effect on the recovery, is the above gateway
configuration stays the same or should be changed?

Any other issues I need to consider?

Thanks
Alex
||||


(system) #4