搭配 使用 Singleton 服務用戶端執行個體 AWS SDK for Java 2.x - AWS SDK for Java 2.x

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

搭配 使用 Singleton 服務用戶端執行個體 AWS SDK for Java 2.x

中的服務用戶端 AWS SDK for Java 2.x 為執行緒安全。您可以為每個服務用戶端建立一個執行個體,並在整個應用程式中重複使用。此方法可提升效能並更有效率地管理資源。

singleton 服務用戶端的優點

連線集區

服務用戶端會維護內部 HTTP 連線集區。建立和銷毀這些集區非常昂貴。當您重複使用用戶端時,這些集區會在請求之間有效率地共用。

降低初始化開銷

建立用戶端需要載入組態、建立登入資料,以及初始化內部元件。Singleton 執行個體可消除此額外負荷。

更好的資源使用率

Singleton 用戶端可防止在您建立許多用戶端執行個體時發生資源耗盡。

建立和使用 Singleton 服務用戶端

下列範例示範如何建立和使用 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; } }

請勿為每個操作建立新的用戶端:

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

重要考量

  • 服務用戶端可保護執行緒。您可以安全地跨多個執行緒共用它們。

  • 只有在應用程式關閉或您不再需要用戶端時,才關閉用戶端。在應用程式層級使用 client.close()或 try-with-resources。

  • 如果您需要不同的組態,例如區域或登入資料,請為每個組態建立個別的單一執行個體。

如果您使用 Spring 等相依性注入架構,請將服務用戶端設定為 Singleton Bean。這可確保適當的生命週期管理。