Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah saya boleh melumpuhkan pengumpulan sambungan untuk http.Client Go?
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}
Dan berikut ialah contoh menggunakan MaxIdleConnsPerHost:
t := http.DefaultTransport.(*http.Transport).Clone() t.MaxIdleConnsPerHost = -1 c := &http.Client{Transport: t}
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!