node.js - 保持 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,
});
如何让我的索引连接保持活动状态,以便我可以将多个事件发送到我的数据存储,而无需连接和重新连接?
解决方案
的构造函数中有一个keepAlive
配置选项。Client
它是一个布尔值。参考
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
});
推荐阅读
- kubernetes - 使用 config-dir 运行领事代理导致未找到异常
- emacs - orgmode 日志抽屉总时间未按预期计算
- scala - Scala Spark 通过成对的 RDD 元素映射
- php - wordpress 搜索分页在哪里
- javascript - 通过JS从历史中删除多个项目
- javascript - 视图可以在 MVC 模式中进行 AJAX 调用吗?
- angular - 使用 Angular 一起调用带有 @RequestParam 和 @RequestBody 的 RESTful Web 服务
- java - 为什么 EnumMap 不是 Java 中的 SortedMap?
- javascript - 如何断开客户端在特定时间内处于非活动状态(socket.io,javascript)
- java - 为什么模拟 mongotemplate.aggregate() 返回 NullPointerException [Spring Boot Mockito]