Go 言語での http.Transport の接続アイドル タイムアウト構成とベスト プラクティス
Go 言語では、http.Transport は HTTP リクエストの基礎となるポーリング接続マネージャーです。これを使用して HTTP 接続の動作とプロパティを構成および管理し、より柔軟で効率的なネットワーク通信を実現できます。この記事では、http.Transport での接続のアイドル タイムアウト構成といくつかのベスト プラクティスを紹介します。
接続アイドル タイムアウトとは、HTTP 接続が一定期間使用されない場合、その接続はアイドル接続とみなされます。 http.Transport は、接続のアイドル タイムアウトを制御するために、接続に関連する 2 つのタイムアウト パラメーターを提供します。
IdleConnTimeout は、グローバル接続アイドル タイムアウトであり、すべてのアイドル接続の最大ライフ サイクルです。デフォルトでは 0 で、アイドル状態の接続はアクティブに閉じられないことを意味します。正の値に設定すると、指定された期間使用されなかった場合、http.Transport は接続を閉じ、接続プールから削除します。
以下は、IdleConnTimeout の設定方法を示すサンプル コードです。
package main import ( "net/http" "time" ) func main() { client := http.Client{ Transport: &http.Transport{ IdleConnTimeout: 30 * time.Second, }, } // 使用client发送HTTP请求... }
上記のコードでは、IdleConnTimeout 設定を使用して http.Client を作成します。この例では、アイドル接続タイムアウトは 30 秒に設定されています。接続が 30 秒以内に使用されない場合、接続は自動的に切断されます。
MaxIdleConns は、接続プール内のアイドル状態の接続の最大数です。デフォルトでは 2 です。これは、最大 2 つのアイドル接続を接続プールに保存できることを意味します。接続プールがいっぱいの場合、後続のアイドル状態の接続はすぐに閉じられます。
以下は、MaxIdleConns を設定する方法を示すサンプル コードです。
package main import ( "net/http" ) func main() { client := http.Client{ Transport: &http.Transport{ MaxIdleConns: 10, }, } // 使用client发送HTTP请求... }
上記のコードでは、MaxIdleConns 設定を使用して http.Client を作成します。この例では、接続プールには最大 10 個のアイドル接続を保存できます。
ベスト プラクティス:
上記は、Go 言語での接続アイドル タイムアウト設定と http.Transport のベスト プラクティスの紹介です。接続アイドル タイムアウト パラメータを適切に設定することで、ネットワーク通信パフォーマンスを最適化し、プログラムの安定性と信頼性を向上させることができます。
以上がGo 言語での接続アイドル タイムアウトの構成と http.Transport のベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。