创建子客户端
编辑创建子客户端
编辑在某些用例中,您可能需要多个客户端实例。您可以多次调用 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)