Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
HTTPklien
Anda dapat mengubah HTTP klien yang akan digunakan untuk klien layanan Anda serta mengubah konfigurasi default untuk HTTP klien dengan AWS SDK for Java 2.x. Bagian ini membahas HTTP klien dan pengaturan untuk. SDK
HTTPklien tersedia di SDK untuk Java
Klien sinkron
HTTPKlien sinkron di SDK untuk Java mengimplementasikan SdkHttpClientS3Client
atauDynamoDbClient
, membutuhkan penggunaan klien sinkron. HTTP AWS SDK for Java Menawarkan tiga HTTP klien sinkron.
- ApacheHttpClient (default)
-
ApacheHttpClient
adalah HTTP klien default untuk klien layanan sinkron. Untuk informasi tentang mengonfigurasi ApacheHttpClient
, lihatKonfigurasikan klien berbasis Apache HTTP. - AwsCrtHttpClient
-
AwsCrtHttpClient
menyediakan throughput tinggi dan IO non-pemblokiran. Ini dibangun di atas AWS Common Runtime (CRT) Http Client. Untuk informasi tentang mengkonfigurasi AwsCrtHttpClient
dan menggunakannya dengan klien layanan, lihatKonfigurasikan HTTP klien AWS CRT berbasis. - UrlConnectionHttpClient
-
Untuk meminimalkan jumlah toples dan pustaka pihak ketiga yang Anda gunakan aplikasi, Anda dapat menggunakan. UrlConnectionHttpClient
Untuk informasi tentang mengonfigurasi UrlConnectionHttpClient
, lihatKonfigurasikan HTTP klien URLConnection berbasis.
Klien asinkron
HTTPKlien asinkron di SDK untuk Java mengimplementasikan antarmuka. SdkAsyncHttpClientS3AsyncClient
atauDynamoDbAsyncClient
, membutuhkan penggunaan klien asinkron. HTTP AWS SDK for Java Menawarkan dua klien asinkronHTTP.
- NettyNioAsyncHttpClient (default)
-
NettyNioAsyncHttpClient
adalah HTTP klien default yang digunakan oleh klien asinkron. Untuk informasi tentang mengonfigurasi NettyNioAsyncHttpClient
, lihatKonfigurasikan klien berbasis Netty HTTP. - AwsCrtAsyncHttpClient
-
AwsCrtAsyncHttpClient
Ini didasarkan pada AWS Common Runtime (CRT) HTTP Client. Untuk informasi tentang mengonfigurasi AwsCrtAsyncHttpClient
, lihatKonfigurasikan HTTP klien AWS CRT berbasis.
HTTPrekomendasi klien
Beberapa faktor ikut berperan ketika Anda memilih implementasi HTTP klien. Gunakan informasi berikut untuk membantu Anda memutuskan.
Diagram alur rekomendasi
Diagram alur berikut memberikan panduan umum untuk membantu Anda menentukan HTTP klien mana yang akan digunakan.
HTTPperbandingan klien
Tabel berikut memberikan informasi rinci untuk setiap HTTP klien.
HTTPklien | Sinkronisasi atau asinkron | Kapan harus digunakan | Batasan/kelemahan |
---|---|---|---|
Klien berbasis Apache HTTP (HTTPklien sinkronisasi default) |
Sinkronkan | Gunakan jika Anda lebih suka latensi rendah daripada throughput tinggi | Waktu startup lebih lambat dibandingkan dengan HTTP klien lain |
URLConnectionberbasis HTTP klien | Sinkronkan | Gunakan jika Anda memiliki persyaratan sulit untuk membatasi dependensi pihak ketiga | Tidak mendukung HTTP PATCH metode ini, diperlukan oleh beberapa orang APIS seperti operasi APIGateway Pembaruan Amazon |
AWS CRTHTTPklien sinkronisasi berbasis 1 | Sinkronkan |
• Gunakan jika aplikasi Anda berjalan di AWS Lambda • Gunakan jika Anda lebih suka throughput tinggi daripada latensi rendah • Gunakan jika Anda lebih suka SDK klien sinkronisasi |
Properti sistem Java berikut tidak didukung:
|
Klien berbasis Netty HTTP (klien asinkron HTTP default) |
Asinkron |
• Gunakan jika aplikasi Anda memanggil APIs yang membutuhkan dukungan HTTP /2 seperti Kinesis API SubscribeToShard |
Waktu startup lebih lambat dibandingkan dengan HTTP klien lain |
AWS CRTklien asinkron HTTP berbasis 1 | Asinkron | • Gunakan jika aplikasi Anda berjalan di AWS Lambda • Gunakan jika Anda lebih suka throughput tinggi daripada latensi rendah • Gunakan jika Anda lebih suka klien async SDK |
• Tidak mendukung klien layanan yang membutuhkan dukungan HTTP /2 seperti dan Properti sistem Java berikut tidak didukung:
|
1 Karena manfaat tambahannya, kami sarankan Anda menggunakan HTTP klien AWS CRT berbasis jika memungkinkan.
Default konfigurasi cerdas
AWS SDK for Java 2.x (versi 2.17.102 atau yang lebih baru) menawarkan fitur default konfigurasi cerdas. Fitur ini mengoptimalkan dua properti HTTP klien bersama dengan properti lain yang tidak memengaruhi HTTP klien.
Default konfigurasi cerdas menetapkan nilai yang masuk akal untuk tlsNegotiationTimeoutInMillis
properti connectTimeoutInMillis
dan berdasarkan nilai mode default yang Anda berikan. Anda memilih nilai mode default berdasarkan karakteristik aplikasi Anda.
Berikut adalah empat cara untuk mengatur mode default untuk aplikasi Anda.
Jika Anda menyetel mode default secara global dengan properti sistem, variabel lingkungan, atau file AWS konfigurasi, Anda dapat mengganti pengaturan saat membuat klien. HTTP
Saat Anda membangun HTTP klien dengan httpClientBuilder()
metode ini, pengaturan hanya berlaku untuk instance yang sedang Anda bangun. Contoh dari ini ditunjukkan di sini. HTTPKlien berbasis Netty dalam contoh ini mengganti nilai mode default apa pun yang ditetapkan secara global untuk dan. connectTimeoutInMillis
tlsNegotiationTimeoutInMillis