Gunakan instance klien layanan tunggal dengan AWS SDK for Java 2.x - AWS SDK for Java 2.x

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan instance klien layanan tunggal dengan AWS SDK for Java 2.x

Klien layanan di AWS SDK for Java 2.x thread-safe. Anda dapat membuat satu contoh dari setiap klien layanan dan menggunakannya kembali di seluruh aplikasi Anda. Pendekatan ini meningkatkan kinerja dan mengelola sumber daya secara lebih efisien.

Manfaat klien layanan tunggal

Pengumpulan koneksi

Klien layanan memelihara kolam koneksi HTTP internal. Membuat dan menghancurkan kolam-kolam ini mahal. Saat Anda menggunakan kembali klien, kumpulan ini dibagikan secara efisien di seluruh permintaan.

Mengurangi overhead inisialisasi

Membuat klien melibatkan pemuatan konfigurasi, membangun kredensil, dan menginisialisasi komponen internal. Contoh Singleton menghilangkan overhead ini.

Pemanfaatan sumber daya yang lebih baik

Klien Singleton mencegah kehabisan sumber daya yang dapat terjadi saat Anda membuat banyak instance klien.

Membuat dan menggunakan klien layanan tunggal

Contoh berikut menunjukkan cara membuat dan menggunakan klien layanan tunggal:

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

Jangan membuat klien baru untuk setiap operasi:

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

Pertimbangan penting

  • Klien layanan aman untuk benang. Anda dapat membagikannya dengan aman di beberapa utas.

  • Tutup klien hanya ketika aplikasi Anda dimatikan atau jika Anda tidak lagi membutuhkan klien. Gunakan client.close() atau try-with-resources di tingkat aplikasi.

  • Jika Anda memerlukan konfigurasi yang berbeda seperti wilayah atau kredensional, buat instance tunggal terpisah untuk setiap konfigurasi.

Jika Anda menggunakan kerangka kerja injeksi ketergantungan seperti Spring, konfigurasikan klien layanan sebagai kacang tunggal. Ini memastikan manajemen siklus hidup yang tepat.