我正在嘗試將接收到我的 Java REST API 的每個輸入有效負載作為單獨的檔案歸檔到 s3 中。將創建一個日期明智的檔案夾,用于在 s3 存盤桶下存盤每天的請求負載。
輸入的范圍可以在每天 1 個請求到多達 100 萬個請求之間。每個有效負載檔案都很小,只有大約 500 個位元組。
存盤結構如下,
s3
|_ abc bucket
|_ 2022-01-12 -> (will contain all requests as separate files received on 12th Jan)
|_ 2022-01-13 -> (will contain all requests as separate files received on 13th Jan)
我的代碼目前正在通過并行上傳每個檔案并讓 S3 處理負載來處理它。我很驚訝地看到每次上傳的時間都在增加,這與檔案大小(很小)無關,而是與我嘗試上傳的物件數量有關。對于大約 100 萬個請求,上傳操作從 0.4 秒增加到 4 秒。
上傳延遲是由于檔案夾大小增加造成的嗎?是否有任何最佳做法可以在每個日期檔案夾下創建子目錄以提高上傳速度?
uj5u.com熱心網友回復:
AWS S3 對 Amazon S3 存盤桶中每個前綴的每秒 3,500 個 PUT/COPY/POST/DELETE 或 5,500 個 GET/HEAD 請求的限制。
https://aws.amazon.com/premiumsupport/knowledge-center/s3-request-limit-avoid-throttling/
您可以在存盤桶中擁有的前綴數量沒有限制。最好的方法是根據前綴有效地創建磁區,以避免同時上傳時的瓶頸。
建議是動態計算哈希來命名前綴。您可以在https://aws.amazon.com/premiumsupport/knowledge-center/s3-object-key-naming-pattern下找到創建前綴的最佳實踐
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/409403.html
標籤:
