# High level rest client connection

**URL:** <https://discuss.elastic.co/t/high-level-rest-client-connection/289899>\
**Category:** Elasticsearch\
**Tags:** language-clients\
**Created:** [November 23, 2021, 5:01am UTC](https://discuss.elastic.co/t/high-level-rest-client-connection/289899 "2021-11-23T05:01:30Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![111505](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111505/32/94191_2.png) [@111505](https://discuss.elastic.co/u/111505)\
**Post date:** [November 23, 2021, 5:01am UTC](https://discuss.elastic.co/t/high-level-rest-client-connection/289899/1 "2021-11-23T05:01:30Z")

</div>

Hello. Questions about maintaining the connection of "Elasticsearch-Rest-High-Level-Client" in Java.  
`RestClient.builder` is created using a connection. But when i am using it on a 365-day server, do i have to connect and close after use? Or should I keep connected in a continuous state?

case 1.

1. Starting the server
2. Connect Elasticsearch to API required
3. Disconnect
4. Connect Elasticsearch to API required

case 2.

1. Connect Elasticsearch with server startup
2. Use API

What is right?

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [November 23, 2021, 5:09am UTC](https://discuss.elastic.co/t/high-level-rest-client-connection/289899/2 "2021-11-23T05:09:02Z")

</div>

Case 2 is the correct one as clients create and use a pool of long running connections.

---

<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:** [November 23, 2021, 8:31am UTC](https://discuss.elastic.co/t/high-level-rest-client-connection/289899/3 "2021-11-23T08:31:48Z")

</div>

Note that it might happen that your client is not connected anymore and that you should reconnect it in that case.

Have a look at [Sniffer | Java REST Client [7.15] | Elastic](https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/sniffer.html) as well.

---

<div class="post-metadata">

**Author:** ![qixian](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/qixian/32/97437_2.png) [@qixian](https://discuss.elastic.co/u/qixian)\
**Post date:** [November 23, 2021, 9:38am UTC](https://discuss.elastic.co/t/high-level-rest-client-connection/289899/4 "2021-11-23T09:38:30Z")

</div>

the Single instance of resthighlevelclient is appropriate？when i create one client instance to use and keep it long running,don't call its close method

---

<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:** [November 23, 2021, 9:58am UTC](https://discuss.elastic.co/t/high-level-rest-client-connection/289899/5 "2021-11-23T09:58:23Z")

</div>

Yes. A singleton is the best practice.

---

<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:** [December 21, 2021, 9:58am UTC](https://discuss.elastic.co/t/high-level-rest-client-connection/289899/6 "2021-12-21T09:58:46Z")

</div>

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