选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

重试

聚焦模式
重试 - AWS SDK for Rust

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS SDK for Rust 提供了默认的重试行为和可自定义的配置选项。调用 AWS 服务 偶尔会返回意外异常。如果重试呼叫,某些类型的错误(例如限制或暂时错误)可能会成功。

重试行为可以使用共享 AWS config文件中的环境变量或设置进行全局配置。有关此方法的信息,请参阅《工具参考指南》AWS SDKs 和《工具参考指南》中的重试行为。它还包括有关重试策略实现以及如何选择一种策略而不是另一种策略的详细信息。

或者,也可以在代码中配置这些选项,如以下各节所示。

默认重试配置

每个服务客户端都默认为通过RetryConfig结构提供的standard重试策略配置。默认情况下,一个呼叫将尝试三次(初次尝试加上两次重试)。此外,为了避免重试风暴,每次重试都将随机延迟一小段时间。此约定适用于大多数用例,但可能不适用于特定情况,例如高吞吐量系统。

只有某些类型的错误被认为是可重试的。 SDKs可重试错误的示例有:

  • 套接字超时

  • 服务端限制

  • 诸如 HTTP 5XX 响应之类的临时服务错误

以下示例被视为可重试:

  • 参数缺失或无效

  • 身份验证/安全错误

  • 配置错误异常

您可以通过设置最大standard尝试次数、延迟时间和退避配置来自定义重试策略。

最大尝试次数

您可以通过提供修改后的RetryConfig代码来自定义代码中的最大尝试次数aws_config::defaults

const CUSTOM_MAX_ATTEMPTS: u32 = 5; let retry_config = RetryConfig::standard() // Set max attempts. When max_attempts is 1, there are no retries. // This value MUST be greater than zero. // Defaults to 3. .with_max_attempts(CUSTOM_MAX_ATTEMPTS); let config = aws_config::defaults(BehaviorVersion::latest()) .retry_config(retry_config) .load() .await;

延迟和退缩

如果需要重试,则默认的重试策略会等待,然后再进行后续尝试。第一次重试的延迟很小,但是对于以后的重试,延迟会呈指数级增长。最大延迟量是有上限的,这样它就不会变得太大。

随机抖动适用于所有尝试之间的延迟。抖动有助于减轻可能导致重试风暴的大型舰队的影响。有关指数退避和抖动的更深入讨论,请参阅架构博客中的指数退避和抖动。AWS

您可以通过向您的代码提供修改后的RetryConfig延迟设置来自定义代码中的延迟设置aws_config::defaults。以下代码将配置设置为将第一次重试尝试最多延迟 100 毫秒,并且任何重试尝试之间的最大间隔为 5 秒。

let retry_config = RetryConfig::standard() // Defaults to 1 second. .with_initial_backoff(Duration::from_millis(100)) // Defaults to 20 seconds. .with_max_backoff(Duration::from_secs(5)); let config = aws_config::defaults(BehaviorVersion::latest()) .retry_config(retry_config) .load() .await;

自适应重试模式

作为模式重试策略的替代方案,standardadaptive模式重试策略是一种高级方法,它寻求理想的请求速率以最大限度地减少限制错误。

注意

自适应重试是一种高级重试模式。通常不建议使用此策略。请参阅《工具参考指南》AWS SDKs 和《工具参考指南》中的重试行为

自适应重试包括标准重试的所有功能。它添加了一个客户端速率限制器,用于衡量受限制请求与非限制请求的比率。它还会限制流量以尝试保持在安全带宽内,理想情况下会导致节流错误为零。

该速率会实时适应不断变化的服务条件和交通模式,并可能相应地增加或降低流量速率。至关重要的是,在高流量场景中,速率限制器可能会延迟初始尝试。

您可以通过提供修改后的RetryConfig代码来选择代码中的adaptive重试策略:

let config = aws_config::defaults(BehaviorVersion::latest()) .retry_config(RetryConfig::adaptive()) .load() .await;

下一主题:

超时

上一主题:

覆盖操作配置
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。