适用于 Java 的 AWS 开发工具包
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

HTTP 传输配置

您可以对异步客户端使用 NettyNioAsyncHttpClient,或对同步客户端使用 ApacheHttpClient 来配置 HTTP 传输设置。有关可以对这些客户端设置的选项的完整列表,请参阅适用于 Java 的 AWS 开发工具包 2.x 参考

在 POM 中添加对 netty-nio-client 的依赖关系以使用 NettyNioAsyncHttpClient

POM 条目

<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>kinesis</artifactId> <version>2.0.0</version> </dependency>

最大连接数

可以通过使用 maxConcurrency 方法来设置允许打开的最大 HTTP 连接数。您可以使用 maxPendingConnectionAcquires 方法设置在达到最大并发数后,允许排队的最大请求数。

  • maxConcurrency 默认值:50

  • maxPendingConnectionAcquires 默认值:10_000

重要

将最大连接数设置为并发事务的数量可避免连接争用和性能不佳。

使用 HTTP 客户端生成器,让开发工具包管理其生命周期。关闭服务客户端时,将关闭 HTTP 客户端。

导入

import software.amazon.awssdk.http.async.SdkAsyncHttpClient; import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient; import software.amazon.awssdk.services.kinesis.KinesisAsyncClient;

代码

KinesisAsyncClient client = KinesisAsyncClient.builder() .httpClientBuilder(NettyNioAsyncHttpClient.builder() .maxConcurrency(100) .maxPendingConnectionAcquires(10_000)) .build();

如果要自己管理生命周期,也可以将 HTTP 客户端直接传递给服务客户端。

代码

SdkAsyncHttpClient httpClient = NettyNioAsyncHttpClient.builder() .maxConcurrency(100) .maxPendingConnectionAcquires(10_000) .build(); KinesisAsyncClient kinesisClient = KinesisAsyncClient.builder() .httpClient(httpClient) .build(); httpClient.close();

本页内容: