As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configurar o cliente HTTP baseado em Apache 5.x
Acesse o Apache5 HttpClient
Para usar o, Apache5HttpClient você deve adicionar uma dependência apache5-client e configurar explicitamente Apache5HttpClient em seus clientes de serviço.
<dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.41.0*</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3</artifactId> </dependency> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>apache5-client</artifactId> </dependency> </dependencies>
*Substitua a versão mostrada em vermelho pela versão do Java SDK que você deseja usar. Encontre as últimas novidades no Maven Central
Usar e configurar o Apache5HttpClient
Você pode configurar uma instância do Apache5HttpClient junto com a criação de um cliente de serviço ou pode configurar uma única instância para compartilhar entre vários clientes de serviço.
Com qualquer abordagem, você usa o Apache5 HttpClient .Builder
Melhor prática: dedicar uma HttpClient instância do Apache5 a um cliente de serviço
Se você precisar configurar uma instância do Apache5HttpClient, recomendamos que você crie a instância Apache5HttpClient dedicada. Você pode fazer isso usando o httpClientBuilder método do construtor do cliente de serviço. Dessa forma, o ciclo de vida do cliente HTTP é gerenciado pelo SDK, o que ajuda a evitar possíveis vazamentos de memória se a instância do Apache5HttpClient não for fechada quando não for mais necessária.
O exemplo a seguir cria um S3Client e configura a instância incorporada Apache5HttpClient com valores maxConnections e connectionTimeout. A instância HTTP é criada usando o método httpClientBuilder do S3Client.Builder.
Importações
import software.amazon.awssdk.http.apache5.Apache5HttpClient; import software.amazon.awssdk.services.s3.S3Client; import java.time.Duration;
Código
S3Client s3Client = S3Client // Singleton: Use the s3Client for all requests. .builder() .httpClientBuilder(Apache5HttpClient.builder() .maxConnections(100) .connectionTimeout(Duration.ofSeconds(5)) ) .build(); // Perform work with the s3Client. s3Client.close(); // Requests completed: Close all service clients.
Abordagem alternativa: compartilhar uma instância do Apache5HttpClient
Para ajudar a reduzir o uso de recursos e memória do seu aplicativo, você pode configurar um Apache5HttpClient e compartilhá-lo entre vários clientes de serviço. O pool de conexões HTTP será compartilhado, o que reduz o uso de recursos.
nota
Quando uma instância do Apache5HttpClient é compartilhada, você deve fechá-la quando ela estiver pronta para ser descartada. O SDK não fechará a instância quando o cliente de serviço for fechado.
O exemplo a seguir configura um cliente HTTP baseado em Apache, que é usado por dois clientes de serviço. A ApacheHttpClient instância configurada é passada para o método HttpClient de cada construtor. Quando os clientes do serviço e o cliente HTTP não são mais necessários, o código os fecha explicitamente. O código fecha o cliente HTTP por último.
Importações
import software.amazon.awssdk.http.SdkHttpClient; import software.amazon.awssdk.http.apache5.Apache5HttpClient; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import software.amazon.awssdk.services.s3.S3Client;
Código
SdkHttpClient apache5HttpClient = Apache5HttpClient.builder() .maxConnections(100).build(); // Singletons: Use the s3Client and dynamoDbClient for all requests. S3Client s3Client = S3Client.builder() .httpClient(apache5HttpClient).build(); DynamoDbClient dynamoDbClient = DynamoDbClient.builder() .httpClient(apache5HttpClient).build(); // Perform work with the s3Client and dynamoDbClient. // Requests completed: Close all service clients. s3Client.close(); dynamoDbClient.close(); apache5HttpClient.close(); // Explicitly close apache5HttpClient.