客户端配置 - 适用于 Java 的 AWS 开发工具包
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

客户端配置

AWS SDK for Java 可用于更改默认客户端配置,当您希望执行以下操作时,这可能非常有用:

  • 通过代理连接到 Internet

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

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

代理配置

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

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

HTTP 传输配置

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

注意

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

最大连接数

可以通过使用 ClientConfiguration.setMaxConnections 方法来设置允许打开的最大 HTTP 连接数。

重要

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

超时和错误处理

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

  • Connection Timeout

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

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

  • Connection Time to Live (TTL)

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

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

  • Maximum Error Retries

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

本地地址

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

TCP 套接字缓冲区大小提示

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

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

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

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

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