テスト シナリオでは、各 HTTP/ に対して新しい TCP 接続を作成するために、Go の HTTP クライアントで接続プーリングを無効にする必要がある場合があります。 1.x リクエスト。このガイドでは、これを実現するためのさまざまなアプローチについて説明します。
http.Client によって使用されるデフォルトの http.Transport では、接続プーリングが有効になりますが、これは不便な場合があります。プーリングを無効にするには、Transport.MaxIdleConnsPerHost を負の値に設定するか、Transport.DisableKeepAlives を true に設定します。
キープアライブは通常、永続的な維持に使用されます。ただし、Transport.DisableKeepAlives を true に設定すると、各リクエストの後にクライアントは強制的に接続を閉じます。この方法では、「Connection: close」リクエスト ヘッダーが追加され、次のように設定できます。
t := http.DefaultTransport.(*http.Transport).Clone() t.DisableKeepAlives = true c := &http.Client{Transport: t}
MaxIdleConnsPerHost (-1 に設定すると)ホストごとのアイドル接続の数を 0 に制限します。これにより、プーリングが効果的に無効になります:
t := http.DefaultTransport.(*http.Transport).Clone() t.MaxIdleConnsPerHost = -1 c := &http.Client{Transport: t}
Dialer.KeepAlive はオプションのように見えるかもしれません。プーリングを無効にしますが、アクティブな接続のキープアライブ期間を設定するだけです。プーリングはこの設定の影響を受けません。
必要に応じて、上記のオプションを、 http.Client.
プーリングの制限はホストごとのアクティブな接続の数に制限されないことに注意することが重要です。ただし、MaxIdleConnsPerHost や DisableKeepAlives などのオプションは、テスト目的でプーリングを無効にする効果的な方法を提供します。
以上がテスト目的で Go の HTTP クライアントで接続プーリングを無効にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。