客户端配置 - AWS SDK for Java 1.x

我们宣布了即将推出 end-of-support 的 AWS SDK for Java (v1)。建议您迁移到 AWS SDK for Java v2。有关日期、其他详细信息以及如何迁移的信息,请参阅链接的公告。

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

客户端配置

AWS SDK for Java 允许您更改默认的客户机配置,这在您想要执行以下操作时很有用:

  • 通过代理连接到 Internet

  • 更改 HTTP 传输设置,例如连接超时和请求重试次数

  • 指定 TCP 套接字缓冲区大小提示

代理配置

在构造客户端对象时,您可以传入一个可选ClientConfiguration对象来自定义客户端的配置。

如果您通过代理服务器连接到 Internet,则将需要通过 ClientConfiguration 对象配置代理服务器设置(代理主机、端口和用户名/密码)。

HTTP 传输配置

您可以使用ClientConfiguration对象配置多个 HTTP 传输选项。偶尔会添加新选项;要查看您可以检索或设置的选项的完整列表,请参阅 AWS SDK for Java API 参考。

注意

每个可配置的值都有一个由常量定义的默认值。有关常量值的列表ClientConfiguration,请参阅 AWS SDK for Java API 参考中的常量字段值

最大连接数

您可以使用设置允许打开的 HTTP 连接的最大数量ClientConfiguration。 setMaxConnections方法。

重要

将最大连接数设置为并发事务的数量可避免连接争用和性能不佳。有关默认的最大连接数值,请参阅 AWS SDK for Java API 参考中的常量字段值

超时和错误处理

可以设置与 HTTP 连接超时和处理错误相关的选项。

  • Connection Timeout

    连接超时是指 HTTP 连接在放弃连接之前等待建立连接的时间长度 (用毫秒表示)。默认值为 10,000 毫秒。

    要自己设置此值,请使用ClientConfiguration。 setConnectionTimeout方法。

  • Connection Time to Live (TTL)

    默认情况下,开发工具包将尝试尽可能长时间地重用 HTTP 连接。如果因建立连接的服务器已停止服务而失败,则将 TTL 设置为有限值可能会有助于恢复应用程序。例如,将 TTL 设置为 15 分钟可确保您将在 15 分钟内与新服务器重新建立连接,即使您已经与出现问题的服务器建立了连接也是如此。

    要设置 HTTP 连接 TTL,请使用 ClientConfiguration.set ConnectionTTL 方法。

  • Maximum Error Retries

    可重试的错误的默认最大重试次数为 3。您可以使用设置不同的值ClientConfiguration。 setMaxError重试方法。

本地地址

要设置 HTTP 客户端将绑定的本地地址,请使用ClientConfiguration。 setLocalAddress

TCP 套接字缓冲区大小提示

想要调整低级 TCP 参数的高级用户还可以通过ClientConfiguration对象设置 TCP 缓冲区大小提示。大多数用户永远不需要调整这些值,这些值是为高级用户提供的。

应用程序的最佳 TCP 缓冲区大小高度依赖网络和操作系统的配置和功能。例如,大多数现代操作系统都为 TCP 缓冲区大小提供了自动调整逻辑,对于需要长时间保持打开状态才能使自动调整功能优化缓冲区大小的 TCP 连接,自动调整逻辑会对连接性能产生很大的影响。

大型缓冲区大小 (例如,2 MB) 将允许操作系统在内存中缓冲更多的数据,而无需远程服务器确认收到该信息,因此,这在网络延迟时间很长时尤其有用。

这仅是一个提示,操作系统可以选择不遵守它。在使用此选项时,用户应当始终检查在操作系统中配置的限值和默认值。大多数操作系统都配置了最大 TCP 缓冲区大小限值,除非您明确提升了最大 TCP 缓冲区大小限值,否则操作系统将不允许您超出此限值。

可以使用许多资源来帮助配置 TCP 缓冲区大小和特定于操作系统的 TCP 设置,其中包括: