创建子客户端
编辑创建子客户端编辑
在某些情况下,您可能需要多个客户端实例。您可以通过多次调用 new Client()
来轻松实现,但您将失去使用单个客户端的所有优势,例如长连接和连接池处理。为了避免这个问题,客户端提供了一个 child
API,它返回一个新的客户端实例,该实例与父客户端共享连接池。
事件发射器在父级和子级之间共享。如果您扩展了父客户端,子客户端将具有相同的扩展,而如果子客户端添加了扩展,则父客户端将不会被扩展。
您可以将所有客户端选项传递给 child
,就像传递给普通客户端一样,但连接池特定的选项除外(ssl
、agent
、pingTimeout
、Connection
和 resurrectStrategy
)。
如果您在任何父/子客户端中调用 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)