# Few questions before setting up 3 node cluster?

**URL:** <https://discuss.elastic.co/t/few-questions-before-setting-up-3-node-cluster/160227>\
**Category:** Elasticsearch\
**Created:** [December 10, 2018, 5:03pm UTC](https://discuss.elastic.co/t/few-questions-before-setting-up-3-node-cluster/160227 "2018-12-10T17:03:24Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Shrimp-Fried-Rice](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/shrimp-fried-rice/32/33360_2.png) [@Shrimp-Fried-Rice](https://discuss.elastic.co/u/Shrimp-Fried-Rice)\
**Post date:** [December 10, 2018, 5:03pm UTC](https://discuss.elastic.co/t/few-questions-before-setting-up-3-node-cluster/160227/1 "2018-12-10T17:03:24Z")

</div>

hi,

currently i have single node cluster and its handling upto ~700 queries per second, (i mean thats the max i have seen on kibana)

now i am planning to make it future proof , so it can handle more than that queries per second.

but i have few questions for setting up 3 node cluster ?

i am looking for money wise and getting better performance for full text search queries

1. can nodes talk to each other over internet becuase some server providers does not offer internal networking or what some call it as vrack  
if yes, then is there way to secure it ? becuase open node on internet will attract some problems.

2. lets say if i manage to set up 3 node cluster then to which node should i direct my search queries ?  
or i should do nginx reverse proxying to all 3 nodes

3. what happens if 1 of the 3 nodes goes down, will it get updated with newer records or modified records when it gets back up ?  
when can i read more about it ?

4. what is more important in node  
cpu/ram/disk for full text searches performance

i was planninig to get 16 GB vps, but 32 gigs dedicated servers are as cheap as vps.

so i guess dedicated servers will be better for nodes .

so far i can only think this issues,

Thanks

---

<div class="post-metadata">

**Author:** ![mjunaidmuzammil](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/mjunaidmuzammil/32/56910_2.png) [@mjunaidmuzammil](https://discuss.elastic.co/u/mjunaidmuzammil)\
**Post date:** [December 10, 2018, 6:39pm UTC](https://discuss.elastic.co/t/few-questions-before-setting-up-3-node-cluster/160227/2 "2018-12-10T18:39:43Z")

</div>

1. can nodes talk to each other over internet becuase some server providers does not offer internal networking or what some call it as vrack  
if yes, then is there way to secure it ? becuase open node on internet will attract some problems.

> Communication over internet is not recommended. You'll see troubles in node communication in the cluster. It is recommended that all nodes in a cluster should communicate with each other on a LAN.

1. lets say if i manage to set up 3 node cluster then to which node should i direct my search queries ?  
or i should do nginx reverse proxying to all 3 nodes

> Add all the 3 nodes behind a load balancer should be fine.

1. what happens if 1 of the 3 nodes goes down, will it get updated with newer records or modified records when it gets back up ?  
when can i read more about it ?

> If you have replicas enabled, there shouldn't be any impact if one of the node goes down.

1. what is more important in node  
cpu/ram/disk for full text searches performance

i was planninig to get 16 GB vps, but 32 gigs dedicated servers are as cheap as vps.

> All of them are important in their own respects

so i guess dedicated servers will be better for nodes .

> Dedicated roles over nodes is better for medium to large size clusters. For smaller clusters, multiple roles can be assigned to nodes.

---

<div class="post-metadata">

**Author:** ![Shrimp-Fried-Rice](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/shrimp-fried-rice/32/33360_2.png) [@Shrimp-Fried-Rice](https://discuss.elastic.co/u/Shrimp-Fried-Rice)\
**Post date:** [December 11, 2018, 3:22am UTC](https://discuss.elastic.co/t/few-questions-before-setting-up-3-node-cluster/160227/3 "2018-12-11T03:22:16Z")

</div>

Thank you.

one more thing to which node i should direct all my index,update,delete requests ? out of the 3 nodes ?

Thanks.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [December 11, 2018, 7:11am UTC](https://discuss.elastic.co/t/few-questions-before-setting-up-3-node-cluster/160227/4 "2018-12-11T07:11:10Z")

</div>

Whatever node can be used. Most of clients (Logstash, Beats, Java Rest Client...) can deal with that OOTB.  
This is a good practice to use all nodes and do round robin on them.

---

<div class="post-metadata">

**Author:** ![Shrimp-Fried-Rice](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/shrimp-fried-rice/32/33360_2.png) [@Shrimp-Fried-Rice](https://discuss.elastic.co/u/Shrimp-Fried-Rice)\
**Post date:** [December 11, 2018, 11:53am UTC](https://discuss.elastic.co/t/few-questions-before-setting-up-3-node-cluster/160227/5 "2018-12-11T11:53:58Z")

</div>

okie more questions.

1. so i have to install nginx + elasicserver in each server so every server will act as roundrobin ?  
i guess, no . only on one server which will handle requets to backend.  
but wont it limit my queries per second count ? as all queries are hitting 1 nginx reverse proxy and then later passing on to multiple server .  
or i am wrong, sorry but i am kind of confused here.

2. i need to do bulk update every few hours. so i guess i should point it to main node rather doing roundrobin,

Thanks

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [December 11, 2018, 12:19pm UTC](https://discuss.elastic.co/t/few-questions-before-setting-up-3-node-cluster/160227/6 "2018-12-11T12:19:31Z")

</div>

Which client are you using to send bulk requests to elasticsearch?

---

<div class="post-metadata">

**Author:** ![Shrimp-Fried-Rice](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/shrimp-fried-rice/32/33360_2.png) [@Shrimp-Fried-Rice](https://discuss.elastic.co/u/Shrimp-Fried-Rice)\
**Post date:** [December 11, 2018, 12:34pm UTC](https://discuss.elastic.co/t/few-questions-before-setting-up-3-node-cluster/160227/7 "2018-12-11T12:34:32Z")

</div>

right now i am using php to send bulk updates every few hours. only 70-80% records gets updated and only 2-3 fields get updated value.

Thanks.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [December 11, 2018, 12:51pm UTC](https://discuss.elastic.co/t/few-questions-before-setting-up-3-node-cluster/160227/8 "2018-12-11T12:51:40Z")

</div>

The PHP client supports multiple hosts.  
[https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/\_configuration.html](https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/_configuration.html)

Just use that, no?

---

<div class="post-metadata">

**Author:** ![Shrimp-Fried-Rice](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/shrimp-fried-rice/32/33360_2.png) [@Shrimp-Fried-Rice](https://discuss.elastic.co/u/Shrimp-Fried-Rice)\
**Post date:** [December 11, 2018, 2:28pm UTC](https://discuss.elastic.co/t/few-questions-before-setting-up-3-node-cluster/160227/9 "2018-12-11T14:28:22Z")

</div>

okay, that is great.

right now i connect like this

```
require 'vendor/autoload.php';

use Elasticsearch\ClientBuilder;

$elasticsearch = ClientBuilder::create()->build();

```

i guess, its minimal configuration to connect to local host.

one more query.

What if i add multiple nodes in php config and one of the node is not up for some reason, so while executing php script for index/update will it throw exception ? or just ignore it.

Thanks

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [December 11, 2018, 2:57pm UTC](https://discuss.elastic.co/t/few-questions-before-setting-up-3-node-cluster/160227/10 "2018-12-11T14:57:52Z")

</div>

I don't know the behavior of this client.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [January 8, 2019, 2:57pm UTC](https://discuss.elastic.co/t/few-questions-before-setting-up-3-node-cluster/160227/11 "2019-01-08T14:57:54Z")

</div>

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