

 适用于 Java 的 AWS SDK 1.x于2025年 end-of-support 12月31日达到。我们建议您迁移到 [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html) 以继续获得新功能、可用性改进和安全更新。

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

# 客户端配置
<a name="section-client-configuration"></a>

 适用于 Java 的 AWS SDK 允许您更改默认的客户机配置，这在您想要执行以下操作时很有用：
+ 通过代理连接到 Internet
+ 更改 HTTP 传输设置，例如连接超时和请求重试次数
+ 指定 TCP 套接字缓冲区大小提示

## 代理配置
<a name="proxy-configuration"></a>

在构造客户端对象时，您可以传入一个可选[ClientConfiguration](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/ClientConfiguration.html)对象来自定义客户端的配置。

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

## HTTP 传输配置
<a name="http-transport-configuration"></a>

您可以使用[ClientConfiguration](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/ClientConfiguration.html)对象配置多个 HTTP 传输选项。偶尔会添加新选项；要查看您可以检索或设置的选项的完整列表，请参阅 适用于 Java 的 AWS SDK API 参考。

**注意**  
每个可配置的值都有一个由常量定义的默认值。有关常量值的列表`ClientConfiguration`，请参阅 适用于 Java 的 AWS SDK API 参考中的[常量字段值](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/constant-values.html)。

### 最大连接数
<a name="maximum-connections"></a>

您可以使用设置允许打开的 HTTP 连接的最大数量[ClientConfiguration。 setMaxConnections](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/ClientConfiguration.html#setMaxConnections-int-)方法。

**重要**  
将最大连接数设置为并发事务的数量可避免连接争用和性能不佳。有关默认的最大连接数值，请参阅 适用于 Java 的 AWS SDK API 参考中的[常量字段值](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/constant-values.html)。

### 超时和错误处理
<a name="timeouts-and-error-handling"></a>

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

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

  要自己设置此值，请使用[ClientConfiguration。 setConnectionTimeout](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/ClientConfiguration.html#setConnectionTimeout-int-)方法。
+  **Connection Time to Live (TTL)** 

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

  要设置 HTTP 连接 TTL，请使用 [ClientConfiguration.set](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/ClientConfiguration.html#setConnectionTTL-long-) ConnectionTTL 方法。
+  **Maximum Error Retries** 

  可重试的错误的默认最大重试次数为 3。您可以使用设置不同的值[ClientConfiguration。 setMaxError重试](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/ClientConfiguration.html#setMaxErrorRetry-int-)方法。

### 本地地址
<a name="local-address"></a>

要设置 HTTP 客户端将绑定的本地地址，请使用[ClientConfiguration。 setLocalAddress](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/ClientConfiguration.html#setLocalAddress-java.net.InetAddress-)。

## TCP 套接字缓冲区大小提示
<a name="tcp-socket-buffer-size-hints"></a>

想要调整低级 TCP 参数的高级用户还可以通过[ClientConfiguration](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/ClientConfiguration.html)对象设置 TCP 缓冲区大小提示。大多数用户永远不需要调整这些值，这些值是为高级用户提供的。

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

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

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

可以使用许多资源来帮助配置 TCP 缓冲区大小和特定于操作系统的 TCP 设置，其中包括：
+  [主机调整](http://fasterdata.es.net/host-tuning/) 