Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Utilice instancias de cliente de servicio singleton con AWS SDK for Java 2.x
Los clientes de servicio del AWS SDK for Java 2.x son seguros para subprocesos. Puede crear una instancia de cada cliente de servicio y reutilizarla en toda la aplicación. Este enfoque mejora el rendimiento y administra los recursos de manera más eficiente.
Ventajas de los clientes con un solo servicio
- Grupo de conexiones
-
Los clientes de servicio mantienen grupos de conexiones HTTP internos. Crear y destruir estos grupos es caro. Al reutilizar los clientes, estos grupos se comparten de forma eficaz entre las solicitudes.
- Reducción de la sobrecarga de inicialización
-
La creación de un cliente implica cargar la configuración, establecer las credenciales e inicializar los componentes internos. Las instancias únicas eliminan esta sobrecarga.
- Mejor utilización de los recursos
-
Los clientes Singleton evitan el agotamiento de los recursos que puede producirse cuando se crean muchas instancias de cliente.
Cree y utilice clientes de servicio Singleton
El siguiente ejemplo muestra cómo crear y usar clientes de servicio 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; } }
No cree nuevos clientes para cada operación:
// This approach creates unnecessary overhead. public void badExample() { try (S3Client s3 = S3Client.create()) { s3.listBuckets(); } }
Consideraciones importantes
-
Los clientes de servicio son seguros para subprocesos. Puede compartirlos de forma segura en varios hilos.
-
Cierre los clientes solo cuando la aplicación se cierre o si ya no lo necesita. Utilice
client.close()
o try-with-resources a nivel de aplicación. -
Si necesita configuraciones diferentes, como regiones o credenciales, cree instancias únicas independientes para cada configuración.
Si utilizas marcos de inyección de dependencias, como Spring, configura los clientes de servicio como unidades únicas. Esto garantiza una gestión adecuada del ciclo de vida.