dn_c
dn_c

Reputation: 614

Connection pooling in elasticsearch

How can we configure connection pooling for elasticsearch in node js? For handling instance failures and detecting dead nodes.

How can I customize Transport, ConnectionPool, Connections classes of elasticsearch in nodejs.

Upvotes: 1

Views: 4619

Answers (1)

Manuel Spigolon
Manuel Spigolon

Reputation: 12900

This feature is supported with the new RC1 client

Here an example:

'use strict'
// docker run -p 9200:9200 -p 9300:9300 --rm -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.7.0
const { Client } = require('@elastic/elasticsearch')
const client = new Client({
  nodes: ['http://127.0.0.1:9200/'],
  requestTimeout: 2000,
  sniffInterval: 500,
  sniffOnStart: true,
  sniffOnConnectionFault: true
})

client.on('sniff', (err, req) => {
  console.log('snif', err ? err.message : '', `${JSON.stringify(req.meta.sniff)}`)
})

setInterval(async () => {
  try {
    const info = await client.info()
    console.log(info.body.name)
  } catch (err) {
    console.log(err.message);
  }
}, 1500)

Note install the v6:

"@elastic/elasticsearch": "6.7.0-rc.1",

Upvotes: 3

Related Questions