Verwenden Sie Singleton Service Client-Instanzen mit dem AWS SDK for Java 2.x - AWS SDK for Java 2.x

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie Singleton Service Client-Instanzen mit dem AWS SDK for Java 2.x

Die Service-Clients in der AWS SDK for Java 2.x sind threadsicher. Sie können für jeden Service-Client eine Instanz erstellen und diese in Ihrer gesamten Anwendung wiederverwenden. Dieser Ansatz verbessert die Leistung und verwaltet Ressourcen effizienter.

Vorteile von Singleton Service Clients

Verbindungspooling

Service-Clients verwalten interne HTTP-Verbindungspools. Das Erstellen und Löschen dieser Pools ist teuer. Wenn Sie Clients wiederverwenden, werden diese Pools effizient von allen Anfragen gemeinsam genutzt.

Reduzierter Initialisierungsaufwand

Das Erstellen eines Clients umfasst das Laden der Konfiguration, das Einrichten von Anmeldeinformationen und das Initialisieren interner Komponenten. Singleton-Instanzen eliminieren diesen Overhead.

Bessere Ressourcennutzung

Singleton-Clients verhindern die Erschöpfung von Ressourcen, die auftreten kann, wenn Sie viele Client-Instanzen erstellen.

Erstellen und verwenden Sie Singleton-Serviceclients

Das folgende Beispiel zeigt, wie Singleton-Serviceclients erstellt und verwendet werden:

// 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; } }

Erstellen Sie nicht für jeden Vorgang neue Clients:

// This approach creates unnecessary overhead. public void badExample() { try (S3Client s3 = S3Client.create()) { s3.listBuckets(); } }

Wichtige Überlegungen

  • Service-Clients sind Thread-sicher. Sie können sie sicher über mehrere Threads hinweg teilen.

  • Schließen Sie Clients nur, wenn Ihre Anwendung heruntergefahren wird oder wenn Sie den Client nicht mehr benötigen. Verwenden Sie client.close() oder try-with-resources auf Anwendungsebene.

  • Wenn Sie unterschiedliche Konfigurationen wie Regionen oder Anmeldeinformationen benötigen, erstellen Sie separate Singleton-Instanzen für jede Konfiguration.

Wenn Sie Dependency Injection-Frameworks wie Spring verwenden, konfigurieren Sie Service-Clients als Singleton-Beans. Dadurch wird ein ordnungsgemäßes Lebenszyklusmanagement gewährleistet.