Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh melumpuhkan pengumpulan sambungan untuk http.Client Go?

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

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-06 22:25:02475semak imbas

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}

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!

Kenyataan:
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