Go http.Client の接続プーリングを無効にする
Go では、net/http.Client が HTTP サーバーへの接続を管理します。デフォルトでは、接続プーリングを使用して、既存の接続を再利用することでパフォーマンスを向上させます。ただし、テスト目的または特定の使用例では、接続プーリングを無効にする必要がある場合があります。
http.Client の接続プーリングを無効にするには、Transport.DisableKeepAlives を設定するか、Transport.MaxIdleConnsPerHost を設定するという 2 つの方法を使用できます。 to -1.
Transport.DisableKeepAlives の使用
Transport.DisableKeepAlives フィールドは、トランスポートがリクエストのキープアライブを無効にするかどうかを制御します。 true に設定すると、リクエスト間で接続が開かれたままになることがなくなります。キープアライブを無効にする必要がある場合は、この方法をお勧めします。
キープアライブを無効にするには、次のコードを使用します:
import ( "net/http" "time" ) func main() { t := http.DefaultTransport.(*http.Transport).Clone() t.DisableKeepAlives = true c := &http.Client{Transport: t} // ... }
Using Transport.MaxIdleConnsPerHost
Transport.MaxIdleConnsPerHost フィールドは、ホストごとのアイドル接続の最大数を制御します。 -1 に設定すると、接続がアイドル状態に保たれることがなくなり、接続プールが無効になります。
この方法を使用して接続プールを無効にするには、次のコードを使用します。
import ( "net/http" "time" ) func main() { t := http.DefaultTransport.(*http.Transport).Clone() t.MaxIdleConnsPerHost = -1 c := &http.Client{Transport: t} // ... }
注:
Dialer.KeepAlive を -1 に設定しても、接続プーリングは無効になりません。代わりに、アクティブな接続のキープアライブが無効になりますが、接続は引き続き接続プールで管理されます。
追加の考慮事項:
以上がGo の http.Client の接続プーリングを無効にする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。