簡體   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