客户端配置 - AWS SDK for Java

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

客户端配置

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

  • 通过代理连接到 Internet

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

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

代理配置

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

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

HTTP 传输配置

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

注意

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

最大连接数

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

重要

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

超时和错误处理

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

  • Connection Timeout

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

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

  • Connection Time to Live (TTL)

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

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

  • Maximum Error Retries

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

本地地址

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

TCP 套接字缓冲区大小提示

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

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

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

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

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