Rumah >pembangunan bahagian belakang >Golang >Mengapa Saya Masih Mencipta Berbilang Sambungan dalam Klien HTTP Go Saya Walaupun dengan `DisableKeepAlives` Ditetapkan kepada Palsu?
Masalah: Mengapa klien HTTP Go saya mencipta berbilang sambungan ke hos yang sama, walaupun menggunakan Pilihan DisableKeepAlives sebagai palsu?
Klien HTTP Go direka untuk menggunakan semula sambungan secara lalai. Walau bagaimanapun, terdapat syarat tertentu yang boleh menghalangnya daripada berbuat demikian.
Diagnosis:
Dalam kod yang disediakan, kaedah http.Transport.RoundTrip() bukan serta-merta diikuti dengan panggilan ke resp.Close(). Ini boleh menyebabkan sambungan ditutup serta-merta selepas permintaan dihantar, menghalangnya daripada digunakan semula untuk permintaan seterusnya.
Penyelesaian:
Untuk memastikan sambungan HTTP digunakan semula, dua langkah perlu:
Snippet Kod:
<code class="go">res, _ := client.Do(req) io.Copy(ioutil.Discard, res.Body) res.Body.Close()</code>
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Mengapa Saya Masih Mencipta Berbilang Sambungan dalam Klien HTTP Go Saya Walaupun dengan `DisableKeepAlives` Ditetapkan kepada Palsu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!