sim*_*ood 10 amazon-web-services node.js elasticsearch
我正在使用 AWS Elasticsearch 服务。在开发环境中有 t3.small 实例。我有大约 15,000 条记录,我想将它们作为批量索引。我所做的是将这笔金额分成每个 250 个项目的块(或小于 10 MiB)。并使用刷新 =“wait_for”选项逐一运行 _bulk 请求,并等待请求完成后再发送下一个请求。在某个时刻,大约在第 25 次迭代时,请求立即失败并显示消息
429 Too Many Requests /_bulk
Run Code Online (Sandbox Code Playgroud)
以防万一,如果块大小为 500,这将在 25/2 请求(大约 12)上失败
它没有告诉更多的事情。仅此而已,我无法理解如果没有其他任何东西可以与我并行发送批量请求,为什么会发生这种情况。我检查了数据大小小于10MB。
我已经拥有的
出现该错误的原因可能是什么?如果我一致发送所有内容,如何保证我的请求不会失败?我可以通过任何其他选项来确保批量请求完全完成吗?
作为写入拒绝的 429 错误消息表示批量队列错误。es_rejected_execution_exception[bulk] 表示您的队列已满并且任何新请求都被拒绝。当Elasticsearch集群的请求数量超过批量队列大小(threadpool.bulk.queue_size)时,会出现此批量队列错误。每个节点上的批量队列可以容纳 50 到 200 个请求,具体取决于您使用的 Elasticsearch 版本。
您可以查阅此链接https://aws.amazon.com/premiumsupport/knowledge-center/resolve-429-error-es/并检查写入拒绝最佳实践
| 归档时间: |
|
| 查看次数: |
26468 次 |
| 最近记录: |