【问题标题】:S3 HTTP status 503 slow downS3 HTTP 状态 503 变慢
【发布时间】:2021-02-25 00:05:00
【问题描述】:

亚马逊文档指出,使用 SDK 中的 AmazonS3Client 将通过回退和重试来处理 503 减速响应。使用 SDK 客户端时,我们偶尔会看到 503 返回。 https://d1.awsstatic.com/whitepapers/AmazonS3BestPractices.pdf?stod_obj2 上的文档指出

虽然 Amazon S3 在内部针对新的请求速率进行优化,但您将暂时收到 HTTP 503 请求响应,直到优化完成。

这是否意味着我们应该在 AWS 之上实施我们自己的回退,在 SDK 将再次处理它时立即重试,或者我们永远不会看到来自客户端的 503? 编辑:使用 TransferUtility 会因为它自己的错误处理代码而帮助防止这种情况发生,还是会因为它的激进上传而加剧这种情况?

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    虽然 SDK 客户端已经在尽可能减少 503 错误方面做得很好,但 503 错误确实会发生,尤其是在流量突然激增时。无需实现自己的重试逻辑并重新发明轮子。当 S3 抛出 503 时,幕后发生的事情是触发了分区请求。换句话说,S3 正在添加更多服务器来处理您的前缀以满足您的需求。但是,需要一些时间来配置分区。在完全配置分区之前,您仍然会得到 503。

    您可以打开支持票,要求他们提前配置更多分区:)

    【讨论】:

    • 我们将在投入生产之前进行性能测试以确定分区数量,但我需要知道如何处理这些峰值。我假设您建议重试并让 SDK 的退避逻辑再试一次? TranferManager 会让这个案例变得更好还是更糟?
    • 我不熟悉 Java SDK。根据我使用 Python 的经验,使用指数回退重试可能就足够了。
    猜你喜欢
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多