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á.
HTTPclientes
Você pode alterar o HTTP cliente a ser usado para seu cliente de serviço, bem como alterar a configuração padrão para HTTP clientes com AWS SDK for Java 2.x o. Esta seção discute os HTTP clientes e as configurações doSDK.
HTTPclientes disponíveis no SDK para Java
Clientes síncronos
HTTPClientes síncronos no SDK for Java implementam a SdkHttpClientS3Client
ou oDynamoDbClient
, requer o uso de um cliente HTTP síncrono. O AWS SDK for Java oferece três HTTP clientes síncronos.
- ApacheHttpClient (padrão)
-
ApacheHttpClient
é o HTTP cliente padrão para clientes de serviços síncronos. Para obter mais informações sobre a configuração do ApacheHttpClient
, consulte Configurar o cliente baseado em Apache HTTP. - AwsCrtHttpClient
-
AwsCrtHttpClient
fornece alto rendimento e E/S sem bloqueio. Ele é construído no cliente Http AWS Common Runtime (CRT). Para receber informações sobre como configurar o AwsCrtHttpClient
e usá-lo com clientes de serviço, consulte Configurar HTTP clientes AWS CRT baseados em. - UrlConnectionHttpClient
-
Para minimizar o número de jars e bibliotecas de terceiros que seu aplicativo usa, você pode usar o. UrlConnectionHttpClient
Para obter mais informações sobre a configuração do UrlConnectionHttpClient
, consulte Configurar o HTTP cliente URLConnection baseado.
Clientes assíncronos
HTTPClientes assíncronos no SDK for Java implementam a interface. SdkAsyncHttpClientS3AsyncClient
ou oDynamoDbAsyncClient
, requer o uso de um cliente assíncrono. HTTP O AWS SDK for Java oferece dois clientes assíncronosHTTP.
- NettyNioAsyncHttpClient (padrão)
-
NettyNioAsyncHttpClient
é o HTTP cliente padrão usado por clientes assíncronos. Para obter mais informações sobre a configuração do NettyNioAsyncHttpClient
, consulte Configurar o cliente baseado em Netty HTTP. - AwsCrtAsyncHttpClient
-
O AwsCrtAsyncHttpClient
é baseado no HTTP cliente AWS Common Runtime (CRT). Para obter mais informações sobre a configuração do AwsCrtAsyncHttpClient
, consulte Configurar HTTP clientes AWS CRT baseados em.
HTTPrecomendações de clientes
Vários fatores entram em jogo quando você escolhe a implementação de um HTTP cliente. Use as informações a seguir para ajudá-lo a decidir.
Fluxograma de recomendação
O fluxograma a seguir fornece orientação geral para ajudá-lo a determinar qual HTTP cliente usar.

HTTPcomparação de clientes
A tabela a seguir fornece informações detalhadas para cada HTTP cliente.
HTTPcliente | Síncrono ou assíncrono | Quando usar | Limitação/desvantagem |
---|---|---|---|
Cliente baseado em Apache HTTP (HTTPcliente de sincronização padrão) |
Síncrono | Use-o se você preferir baixa latência em vez de alta taxa de transferência | Tempo de inicialização mais lento em comparação com outros clientes HTTP |
URLConnectionHTTPcliente baseado | Sincronização | Use-o se você tiver um requisito rígido de limitar dependências de terceiros | Não suporta o HTTP PATCH método, exigido por algumas operações, APIS como o Amazon APIGateway Update |
AWS CRTHTTPcliente de sincronização baseado 1 | Sincronização |
• Use-o se seu aplicativo estiver sendo executado em AWS Lambda • Use-o se você preferir alta taxa de transferência em vez de baixa latência • Use-o se você preferir sincronizar SDK clientes |
As seguintes propriedades do sistema Java não são suportadas:
|
Cliente baseado em Netty HTTP (cliente assíncrono padrão) HTTP |
Assíncrono |
• Use-o se seu aplicativo invocar algo APIs que exija suporte HTTP /2, como o Kinesis API SubscribeToShard |
Tempo de inicialização mais lento em comparação com outros clientes HTTP |
AWS CRTcliente assíncrono baseado 1 HTTP | Assíncrono | • Use-o se seu aplicativo estiver sendo executado no AWS Lambda • Use-o se você preferir alta taxa de transferência em vez de baixa latência • Use-o se você preferir clientes SDK assíncronos |
• Não oferece suporte a clientes de serviços que precisam de suporte HTTP /2, como e As seguintes propriedades do sistema Java não são suportadas:
|
1 Por causa de seus benefícios adicionais, recomendamos que você use os HTTP clientes AWS CRT baseados, se possível.
Padrões de configuração inteligentes
A AWS SDK for Java 2.x (versão 2.17.102 ou posterior) oferece um recurso de padrões de configuração inteligente. Esse recurso otimiza duas propriedades HTTP do cliente junto com outras propriedades que não afetam o HTTP cliente.
Os padrões de configuração inteligentes definem valores razoáveis para as propriedades connectTimeoutInMillis
e tlsNegotiationTimeoutInMillis
com base em um valor de modo padrão fornecido por você. Você escolhe o valor de modo padrão com base nas características do seu aplicativo.
Para obter mais informações sobre padrões de configuração inteligente e como escolher o valor do modo padrão mais adequado para seus aplicativos, consulte o Guia de referência de ferramentas AWS SDKse ferramentas.
A seguir estão quatro maneiras de definir o modo padrão para seu aplicativo.
Se você definir o modo padrão globalmente com a propriedade do sistema, a variável de ambiente ou o arquivo de AWS configuração, poderá substituir as configurações ao criar um cliente. HTTP
Quando você cria um HTTP cliente com o httpClientBuilder()
método, as configurações se aplicam somente à instância que você está criando. Um exemplo disso é mostrado aqui. O HTTP cliente baseado em Netty neste exemplo substitui todos os valores de modo padrão definidos globalmente para e. connectTimeoutInMillis
tlsNegotiationTimeoutInMillis