【问题标题】:Keep Elasticsearch connection alive保持 Elasticsearch 连接处于活动状态
【发布时间】:2021-09-13 12:53:46
【问题描述】:

我希望让我的 elasticsearch 客户端连接保持活跃。我一直在使用弹性客户端,并在索引和搜索其数据存储时取得了一些巨大的成功,但我希望能够创建到弹性搜索节点的连接并保留连接,这样我就不需要不断创建每次我发布到它时都会建立一个新连接。

查看文档后,我发现 swagger 文档有一个 keep-alive 功能,但我使用 nodejs 创建了我的客户端,并且没有找到任何功能来做到这一点。

我的客户看起来像这样:

const client = new Client({
  auth: {
    username: 'aSecret',
    password: 'alsoASecret',
  },
  node: 'localhost:9000',
  maxRetries: 3,
  requestTimeout: 15000,
});

我的索引现在非常简单:

await client.index({
  index: 'my-datastore'
  refresh: true,
  body: eventData,
});

如何让我的索引连接保持活动状态,以便我可以将多个事件发送到我的数据存储区,而无需连接和重新连接?

【问题讨论】:

    标签: node.js elasticsearch


    【解决方案1】:

    Client 的构造函数中有一个keepAlive 配置选项。 它是一个布尔值。 Reference

    keepAlive: 到节点的连接是否应该永远保持打开状态?当您直接连接到 Elasticsearch 时,建议使用此行为。

    var elasticsearch = require('elasticsearch');
    var client = new elasticsearch.Client({
      auth: {
        username: 'aSecret',
        password: 'alsoASecret',
      },
      node: 'localhost:9000',
      maxRetries: 3,
      requestTimeout: 15000,
      keepAlive: true
    }); 
    

    【讨论】:

    • 我一直盯着文档的错误位置!完全错过了,我也非常感谢这个例子。谢谢你,祝你有美好的一天!
    • 有没有办法用yarnnpm 安装这个版本的elasticsearch api?
    猜你喜欢
    • 2012-01-03
    • 2013-08-27
    • 2019-09-01
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多