node.js - 保持 Elasticsearch 连接处于事件状态

标签 node.js elasticsearch

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

查看文档后,我发现 swagger 文档有一个保持事件状态的功能,但我使用 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,
});

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

最佳答案

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

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

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

关于node.js - 保持 Elasticsearch 连接处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68210435/

相关文章:

angularjs - 如何在聚合 MongoDB 中设置 'cursor' 选项

mysql - 保存外部系统凭据的最佳方法

node.js - 删除 Mongoose 中引用的文档

amazon-web-services - Logstash 输出到 AWS EC2 上的 Elasticsearch

docker - 在Docker构建期间定义Elasticsearch映射

elasticsearch - 操作功能计算的最终分数

node.js - connect中间件中的bodyParser()有什么作用?

node.js - gm 流标准输出管道抛出未处理的错误

elasticsearch - 路由 VS。索引查询性能

elasticsearch - 与ELK查找日志中最常见的错误字符串