HttpClient Instance Life Cycle: Mod contoh tunggal atau setiap permintaan dibina?
Dalam aplikasi klien API web, kitaran hidup terbaik objek HTTPClient telah menjadi kontroversi. Sesetengah orang menganjurkan membuat contoh baru untuk setiap panggilan, sementara yang lain menganjurkan panggilan dan menggunakan semula satu contoh beberapa kali.
Buat httpclient
baru
Buat httpclient baru untuk setiap permintaan untuk memperkenalkan beberapa perbelanjaan, termasuk:
Pengurusan kelayakan dan cookie: HttpClientHandler penyelenggaraan kelayakan dan kuki, kelayakan dan kuki ini direka untuk menggunakannya semula. Kecekapan menetapkan semula nilai -nilai ini secara berasingan untuk setiap permintaan adalah rendah.
Header Permintaan Lalai: - Konfigurasi tajuk Permintaan Lalai (seperti Header Accept) pada contoh HttpClient baru (seperti kepala penerimaan).
httpmessageHandlers:
Jika anda menggunakan httpmessageHandlers untuk rekod log, membuang atau sekte mendatar lain, anda perlu mengkonfigurasi semula mereka pada setiap httpclient baru. -
Pengurusan sambungan TCP/IP: Pelupusan HTTPClient akan menutup HTTPClientHandler yang berkaitan dan memaksa sambungan TCP/IP. Ini memerlukan penubuhan semula setiap permintaan, yang membawa kepada kerugian prestasi yang berpotensi, terutamanya di Internet atau untuk sambungan HTTPS.
-
menggunakan semula satu httpclient
- Untuk pelbagai panggilan dan gunakan semula contoh httpclient yang sama, ia dapat meminimumkan perbelanjaan ini dan memberikan manfaat lain:
Penggunaan fungsional yang dipertingkatkan:
ciri -ciri httpclient (contohnya, httpmessageHandler) direka untuk pelbagai panggilan, yang dapat memberikan perhatian cross -sectional dengan cekap.
Kolam Sambungan: Gunakan semula sambungan TCP/IP melalui HTTPClient untuk menggunakan semula sambungan TCP/IP untuk mengelakkan semula sambungan untuk setiap permintaan untuk meningkatkan prestasi.
Program pemprosesan status:
httpmessageHandlers boleh mengekalkan keadaan aplikasi -peringkat antara permintaan, yang sukar dicapai setiap kali contoh httpclient ditandakan.
-
cadangan
- Berdasarkan analisis perbelanjaan, secara amnya disyorkan untuk mengekalkan kitaran hayat aplikasi untuk setiap API bebas akses. Kaedah ini memberikan keseimbangan terbaik antara kecekapan sumber, prestasi dan fungsi.
Atas ialah kandungan terperinci Adakah mewujudkan httpclient baru untuk setiap panggilan API web benar -benar cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!