自2024年7月31日起, AWS SDK for Java 1.x已进入维护模式,并将于2025年12月31日end-of-support
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
客户端配置
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方法。
-
连接上线时间 (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设置,包括: