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à.
Usa le istanze del client del servizio singleton con AWS SDK for Java 2.x
I client di servizio in the AWS SDK for Java 2.x sono thread-safe. È possibile creare un'istanza di ogni client di servizio e riutilizzarla in tutta l'applicazione. Questo approccio migliora le prestazioni e gestisce le risorse in modo più efficiente.
Vantaggi dei clienti del servizio Singleton
- Pooling di connessioni
-
I client di servizio gestiscono pool di connessioni HTTP interni. Creare e distruggere questi pool è costoso. Quando si riutilizzano i client, questi pool vengono condivisi in modo efficiente tra le richieste.
- Sovraccarico di inizializzazione ridotto
-
La creazione di un client implica il caricamento della configurazione, la creazione di credenziali e l'inizializzazione dei componenti interni. Le istanze Singleton eliminano questo sovraccarico.
- Migliore utilizzo delle risorse
-
I client Singleton impediscono l'esaurimento delle risorse che può verificarsi quando si creano molte istanze client.
Crea e utilizza i client di servizio Singleton
L'esempio seguente mostra come creare e utilizzare i client di servizio singleton:
// Create one instance and use it throughout the application. public class ServiceClientSource { private static final S3Client s3Client = S3Client.create(); public static S3Client getS3Client() { return s3Client; } }
Non creare nuovi client per ogni operazione:
// This approach creates unnecessary overhead. public void badExample() { try (S3Client s3 = S3Client.create()) { s3.listBuckets(); } }
Considerazioni importanti
-
I client di servizio sono thread-safe. Puoi condividerli in sicurezza su più thread.
-
Chiudi i client solo quando l'applicazione si spegne o se non hai più bisogno del client. Usa
client.close()
o try-with-resources a livello di applicazione. -
Se hai bisogno di configurazioni diverse, come regioni o credenziali, crea istanze singleton separate per ogni configurazione.
Se utilizzi framework di iniezione delle dipendenze come Spring, configura i client di servizio come bean singleton. Ciò garantisce una corretta gestione del ciclo di vita.