创建子客户端编辑

在某些情况下,您可能需要多个客户端实例。您可以通过多次调用 new Client() 来轻松实现,但您将失去使用单个客户端的所有优势,例如长连接和连接池处理。为了避免这个问题,客户端提供了一个 child API,它返回一个新的客户端实例,该实例与父客户端共享连接池。

事件发射器在父级和子级之间共享。如果您扩展了父客户端,子客户端将具有相同的扩展,而如果子客户端添加了扩展,则父客户端将不会被扩展。

您可以将所有客户端选项传递给 child,就像传递给普通客户端一样,但连接池特定的选项除外(sslagentpingTimeoutConnectionresurrectStrategy)。

如果您在任何父/子客户端中调用 close,则所有客户端都将关闭。

const { Client } = require('@elastic/elasticsearch')
const client = new Client({
  cloud: { id: '<cloud-id>' },
  auth: { apiKey: 'base64EncodedKey' }
})
const child = client.child({
  headers: { 'x-foo': 'bar' },
  requestTimeout: 1000
})

client.info().then(console.log, console.log)
child.info().then(console.log, console.log)