Go http.Client の接続プーリングをオフにする
Go の http.Client の接続プーリングを無効にするには、そのトランスポート設定を変更します。主なアプローチは 2 つあります。
アプローチ 1: DisableKeepAlive
Transport.DisableKeepAlives を true に設定すると、トランスポートが既存の接続を再利用できなくなります。ただし、これにより、リクエストに Connection: close ヘッダーが追加される可能性があり、すべてのテスト シナリオで望ましいとは限りません。
アプローチ 2: MaxIdleConnsPerHost を設定する
Transport.MaxIdleConnsPerHost を -1 などの負の値に設定すると、接続プーリングが事実上無効になります。 DisableKeepAlives とは異なり、このアプローチはリクエスト ヘッダーには影響しません。
サンプル コード
DisableKeepAlive を使用して接続プーリングを無効にする例を次に示します。
t := http.DefaultTransport.(*http.Transport).Clone() t.DisableKeepAlives = true c := &http.Client{Transport: t}
MaxIdleConnsPerHost を使用した例を次に示します。
t := http.DefaultTransport.(*http.Transport).Clone() t.MaxIdleConnsPerHost = -1 c := &http.Client{Transport: t}
Dialer.KeepAlive を -1 に設定しても、接続プーリングは無効にならないことに注意することが重要です。この設定は、アクティブな接続のキープアライブ動作にのみ影響し、新しい接続の作成には影響しません。
以上がGo の http.Client の接続プーリングを無効にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。