【问题标题】:ElasticSearch AWS request TimeoutElasticSearch AWS 请求超时
【发布时间】:2017-12-20 20:12:59
【问题描述】:

我有一个在 AWS 中运行的 ElasticSearch 实例,我可以通过 MeteorJS 应用程序中的 JavaScript 客户端连接到该实例。创建映射(索引和分析器)或更新映射没有问题。

只要有对实例的索引、更新或删除请求,就会出现问题。在服务超过 200 个请求后,ElasticSearch 实例开始抛出请求超时错误,代码为 408。最初,我认为是发出多个单个请求是这种情况,所以我决定进行批量推送。下面是批量推送请求的 sn-p。

var bulk = SearchService.ElasticQueue.splice(0, 1000);
console.log('Size: ', bulk.length);
if (bulk.length > 0) {
  EsClient.bulk({
    body: bulk
  }, function (error, response) {
    if (!error) {
      console.log(response);
    } else {
      console.log(error);
    }
  });
}

SearchService.ElasticQueue 是一种队列形式,一个 cron 作业经常运行以从中获取数据并运行批量请求。我还尝试减少批量请求中的文档数量,并增加连接配置中的请求超时,但这似乎没有帮助。如有任何建议,我将不胜感激。

谢谢。

【问题讨论】:

  • 我们也看到了超时。还找不到解释。 30 秒后超时。你找到解决方案了吗?
  • 似乎是连接问题。
  • 这里也一样。我正在使用curl 并且也有 TIMEOUTS,但我确实注意到记录是随机添加到索引中的。解决这个问题好运吗?

标签: javascript amazon-web-services elasticsearch


【解决方案1】:

只有一种方法可以使用:

wait_for_completion=false

这将返回一个Task ID,然后您可以使用这个Task ID 提取数据

【讨论】:

    猜你喜欢
    • 2014-04-19
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2011-02-26
    • 1970-01-01
    • 2018-09-06
    • 2018-02-03
    相关资源
    最近更新 更多