gpt4 book ai didi

java - Amazon Web Services 中的 API 重试逻辑

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:51:55 25 4
gpt4 key购买 nike

http://docs.aws.amazon.com/general/latest/gr/api-retries.html

本文档提到“每个 AWS 开发工具包实现自动重试逻辑,适用于 Java 的 AWS 开发工具包自动重试请求。”

如果我没有指定任何重试配置,Java AWS SDK 的默认机制是什么?我一直在使用 Java AWS SDK,如果 AWS 服务端出现故障,我会得到一个简单的服务异常。我从未体验过任何“自动”重试机制。谁能解释一下这个重试机制是什么?

最佳答案

同一文档页面说:

The AWS SDK for Java automatically retries requests, and you can configure the retry settings using the ClientConfiguration class.

您应该查看 ClientConfiguration 的官方文档,它有很多方法来调整其关于重试逻辑的行为。以下是最重要的:

  • withMaxErrorRetry 设置失败的可重试请求的最大重试次数(例如:来自服务的 5xx 错误响应)
  • withRequestTimeout 设置在放弃和超时之前等待请求完成的时间(以毫秒为单位)[...]
  • withThrottledRetries 重试限制是一项功能,可在大部分请求失败且重试不成功时智能地限制重试尝试 [...]
  • withRetryPolicy这个最有意思,它让你选择RetryPolicy并改变:
    • BackoffStrategy 用于提供自定义退避策略以控制重试之间的 hibernate 时间的 Hook
    • RetryCondition 用于提供关于是否应重试失败请求的自定义条件的 Hook
    • maxErrorRetry
    • honorMaxErrorRetryInClientConfig(是否尊重上面提到的配置设置)

另请注意,如果您没有注意到自动重试机制,则可能是由于客户端错误。这些设置仅用于在服务器 (5xx) 或节流错误的情况下重试请求:

client errors (4xx) indicate that you need to revise the request to correct the problem before trying again

如果您声称这是“服务端”失败,您应该提供一些代码来重现这种情况并分析实际发生​​的情况。


现在关于默认值:

What is the default mechanism for Java SDK, if i don't specify any retry config?

您可以查找ClientConfiguration 的默认值constant fields .但请注意,它可能因您使用的服务而异(特别是 DynamoDB 是一种特殊情况)。也检查 PredefinedClientConfigurationsPredefinedRetryPolicies类。

关于java - Amazon Web Services 中的 API 重试逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40123856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com