Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
HTTPclienti
È possibile modificare il HTTP client da utilizzare per il client di servizio nonché modificare la configurazione predefinita per HTTP i client con AWS SDK for Java 2.x. Questa sezione illustra i HTTP client e le impostazioni per. SDK
HTTPclient disponibili in SDK per Java
Client sincroni
HTTPI client sincroni in SDK for Java implementano l'SdkHttpClientS3Client
o theDynamoDbClient
, richiede l'uso di un client sincronoHTTP. AWS SDK for Java Offre tre client HTTP sincroni.
- ApacheHttpClient (impostazione predefinita)
-
ApacheHttpClient
è il HTTP client predefinito per i client di servizio sincroni. Per informazioni sulla configurazione di ApacheHttpClient
, vedere. Configurare il client basato su HTTP Apache - AwsCrtHttpClient
-
AwsCrtHttpClient
fornisce un throughput elevato e un IO non bloccante. È basato sul client Http AWS Common Runtime (CRT). Per informazioni sulla configurazione AwsCrtHttpClient
e sul suo utilizzo con i client di servizio, vedereConfigurazione HTTP dei client AWS CRT basati. - UrlConnectionHttpClient
-
Per ridurre al minimo il numero di jar e librerie di terze parti utilizzate dall'applicazione, è possibile utilizzare il. UrlConnectionHttpClient
Per informazioni sulla configurazione di UrlConnectionHttpClient
, vedere. Configurare il HTTP client URLConnection basato
Client asincroni
I HTTP client asincroni per Java implementano l'SDKinterfaccia. SdkAsyncHttpClientS3AsyncClient
o ilDynamoDbAsyncClient
, richiede l'uso di un client asincrono. HTTP Offre due client asincroni. AWS SDK for Java HTTP
- NettyNioAsyncHttpClient (impostazione predefinita)
-
NettyNioAsyncHttpClient
è il HTTP client predefinito utilizzato dai client asincroni. Per informazioni sulla configurazione di, vedere. NettyNioAsyncHttpClient
Configurare il client basato su Netty HTTP - AwsCrtAsyncHttpClient
-
AwsCrtAsyncHttpClient
Si basa sul AWS Common Runtime (CRT) HTTP Client. Per informazioni sulla configurazione di AwsCrtAsyncHttpClient
, vedereConfigurazione HTTP dei client AWS CRT basati.
HTTPraccomandazioni per i clienti
Quando si sceglie un'implementazione HTTP client entrano in gioco diversi fattori. Utilizza le seguenti informazioni per aiutarti a decidere.
diagramma di flusso dei consigli
Il seguente diagramma di flusso fornisce indicazioni generali per aiutarvi a determinare quale HTTP client utilizzare.
HTTPconfronto tra clienti
La tabella seguente fornisce informazioni dettagliate per ogni HTTP cliente.
HTTPcliente | Sincronizzazione o asincrona | Quando usare | Limitazione/inconveniente |
---|---|---|---|
Client basato su Apache HTTP (client di sincronizzazione predefinito) HTTP |
Sync | Usalo se preferisci una bassa latenza rispetto a un throughput elevato | Tempo di avvio più lento rispetto ad altri client HTTP |
URLConnectionclient basato HTTP | Sync | Usalo se hai una forte esigenza di limitare le dipendenze di terze parti | Non supporta il HTTP PATCH metodo, richiesto da alcune operazioni APIS come Amazon APIGateway Update |
AWS CRTHTTPclient di sincronizzazione basato 1 | Sync |
• Usalo se l'applicazione è in esecuzione in AWS Lambda • Usalo se preferisci un throughput elevato rispetto a una bassa latenza • Usalo se preferisci i client di sincronizzazione SDK |
Le seguenti proprietà del sistema Java non sono supportate:
|
Client con sede a Netty HTTP (client HTTP asincrono predefinito) |
Asincrono |
• Usalo se l'applicazione richiama richiami APIs che richiedono il supporto HTTP /2 come Kinesis API SubscribeToShard |
Tempo di avvio più lento rispetto ad altri client HTTP |
AWS CRTclient asincrono HTTP basato 1 | Asincrono | • Usalo se l'applicazione è in esecuzione in AWS Lambda • Usalo se preferisci un throughput elevato rispetto a una bassa latenza • Usalo se preferisci i client asincroni SDK |
• Non supporta i client di servizio che richiedono il supporto HTTP /2 come e Le seguenti proprietà del sistema Java non sono supportate:
|
1 A causa dei loro vantaggi aggiuntivi, ti consigliamo di utilizzare i HTTP client AWS CRT basati, se possibile.
Impostazioni predefinite di configurazione intelligente
La AWS SDK for Java 2.x (versione 2.17.102 o successiva) offre una funzionalità di configurazione predefinita intelligente. Questa funzionalità ottimizza due proprietà HTTP del client insieme ad altre proprietà che non influiscono sul client. HTTP
Le impostazioni predefinite di configurazione intelligente impostano valori ragionevoli per le tlsNegotiationTimeoutInMillis
proprietà connectTimeoutInMillis
and in base a un valore della modalità defaults fornito dall'utente. Scegliete il valore della modalità predefinita in base alle caratteristiche dell'applicazione.
Di seguito sono riportati quattro modi per impostare la modalità predefinita per l'applicazione.
Se impostate la modalità predefinita a livello globale con la proprietà di sistema, la variabile di ambiente o il file di AWS configurazione, potete sovrascrivere le impostazioni quando create un client. HTTP
Quando create un HTTP client con il httpClientBuilder()
metodo, le impostazioni si applicano solo all'istanza che state creando. Un esempio di ciò è mostrato qui. Il HTTP client basato su Netty in questo esempio sostituisce tutti i valori di modalità predefiniti impostati globalmente per e. connectTimeoutInMillis
tlsNegotiationTimeoutInMillis