ホームページ >バックエンド開発 >Golang >Go の http.Client の接続プーリングを無効にするにはどうすればよいですか?

Go の http.Client の接続プーリングを無効にするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-06 22:25:02564ブラウズ

How can I disable connection pooling for Go's http.Client?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。