Go での HTTP 接続の再利用
複数の HTTP リクエストを行う場合、不必要なリソースの消費を防ぎ、パフォーマンスを向上させるために接続を再利用することが不可欠です。 Go では、これは簡単な一連のガイドラインに従うことで実現できます。
まず、グローバル トランスポートと HTTP クライアントを作成します。これにより、すべてのリクエストが同じ基盤となる接続プールによって処理されるようになります:
// Create a new transport and HTTP client tr := &http.Transport{} client := &http.Client{Transport: tr}
次に、HTTP リクエストを行うゴルーチンに常に同じ HTTP クライアントを渡します:
r, err := client.Post(url, "application/json", post)
ただし、接続の再利用はデフォルトでは有効になっていません。適切に利用されるようにするには、HTTP 応答全体を読み取り、その後本文を明示的に閉じることが重要です。
res, _ := client.Do(req) io.Copy(ioutil.Discard, res.Body) res.Body.Close()
応答が完全に読み込まれ、本文が閉じられたことを確認することで、接続を安全に行うことができます。後続のリクエストで再利用するためにプールに返されます。
以上がGo で HTTP 接続を効率的に再利用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。