客户端配置 - Amazon SDK for Java 1.x
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

自2024年7月31日起, Amazon SDK for Java 1.x已进入维护模式,并将于2025年12月31日end-of-support上线。我们建议您迁移到Amazon SDK for Java 2.x以继续接收新功能、可用性改进和安全更新。

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

客户端配置

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

  • 通过代理连接到 Internet

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

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

代理配置

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

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

HTTP传输配置

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

注意

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

最大连接数

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

重要

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

超时和错误处理

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

  • Connection Timeout

    连接超时是指连接在放弃之前等待建立HTTP连接的时间(以毫秒为单位)。默认值为 10,000 毫秒。

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

  • 连接上线时间 (TTL)

    默认情况下,SDK会尝试尽可能长时间地重复使用HTTP连接。在与已停止服务的服务器建立连接的故障情况下,限制连接TTL可以帮助应用程序恢复。例如,设置为 15 分钟TTL可以确保即使您与出现问题的服务器建立了连接,也能在 15 分钟内重新建立与新服务器的连接。

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

  • Maximum Error Retries

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

本地地址

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

TCP套接字缓冲区大小提示

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

应用程序的最佳TCP缓冲区大小在很大程度上取决于网络和操作系统的配置和功能。例如,大多数现代操作系统都提供TCP缓冲区大小的自动调整逻辑。这可能会对保持足够长的时间以进行自动调整以优化缓冲区大小的TCP连接的性能产生重大影响。

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

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

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