繁体   English   中英

Elasticsearch 429 请求过多 _bulk 与同步请求

[英]Elasticsearch 429 Too Many Requests _bulk with synchronous requests

我正在使用 AWS Elasticsearch 服务。 在开发环境中有 t3.small 实例。 我有大约 15 000 条记录要作为批量索引。 我所做的是将这个数量分成每个 250 个项目(或低于 10 MiB)的块。 并逐个运行带有refresh="wait_for"选项的 _bulk 请求,并等待请求完成后再发送下一个请求。 在某个时候,大约在 25 次迭代中,请求立即失败并显示消息

429 Too Many Requests /_bulk

以防万一,如果块大小为 500,这将在 25/2 请求时失败(大约 12)

它没有更多的说明。 仅此而已,如果没有其他任何东西可以与我并行发送批量请求,我无法理解为什么会发生这种情况。 我检查了数据大小小于 10MB。

我已经拥有的

  1. 我始终如一地发送每个请求,等待上一个请求
  2. 批量请求大小小于 10MiB
  3. 每个批量请求中包含不超过 250 条记录(+ 250 表示这是索引)
  4. 我正在使用 refresh="wait_for"
  5. 甚至在发送新请求之前有 2 秒的延迟(我强烈希望将其删除)
  6. 添加新实例或增加存储空间根本没有帮助

出现该错误的原因可能是什么? 如果我始终如一地发送所有内容,如何保证我的请求不会失败? 我可以通过任何其他选项来确保批量请求完全完成吗?

作为写拒绝的 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/并检查写拒绝最佳实践

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM