Bagaimanakah saya boleh melumpuhkan pengumpulan sambungan untuk http.Client Go?

Mary-Kate Olsen
Lepaskan: 2024-11-06 22:25:02
asal
549 orang telah melayarinya

How can I disable connection pooling for Go's http.Client?

Mematikan Pengumpulan Sambungan untuk Go http.Client

Untuk melumpuhkan pengumpulan sambungan untuk http.Client Go, anda boleh mengubah suai tetapan pengangkutannya. Terdapat dua pendekatan utama:

Pendekatan 1: DisableKeepAlive

Menetapkan Pengangkutan.DisableKeepAlives kepada benar akan menghalang pengangkutan daripada menggunakan semula sambungan sedia ada. Walau bagaimanapun, ini mungkin menyebabkan penambahan Connection: close header kepada permintaan, yang mungkin tidak diingini dalam semua senario ujian.

Pendekatan 2: Tetapkan MaxIdleConnsPerHost

Menetapkan Transport.MaxIdleConnsPerHost kepada nilai negatif, seperti -1, juga akan melumpuhkan pengumpulan sambungan dengan berkesan. Tidak seperti DisableKeepAlives, pendekatan ini tidak akan menjejaskan pengepala permintaan.

Kod Contoh

Berikut ialah contoh melumpuhkan pengumpulan sambungan menggunakan DisableKeepAlive:

t := http.DefaultTransport.(*http.Transport).Clone()
t.DisableKeepAlives = true
c := &http.Client{Transport: t}
Salin selepas log masuk

Dan berikut ialah contoh menggunakan MaxIdleConnsPerHost:

t := http.DefaultTransport.(*http.Transport).Clone()
t.MaxIdleConnsPerHost = -1
c := &http.Client{Transport: t}
Salin selepas log masuk

Adalah penting untuk ambil perhatian bahawa menetapkan Dialer.KeepAlive kepada -1 tidak melumpuhkan pengumpulan sambungan. Tetapan ini hanya mempengaruhi gelagat sambungan aktif yang kekal hidup, bukan penciptaan sambungan baharu.

Atas ialah kandungan terperinci Bagaimanakah saya boleh melumpuhkan pengumpulan sambungan untuk http.Client Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan