Go の HTTP リクエスト処理によるピアによる接続のリセット
Web ページを効率的にダウンロードするために Go の http.Get() 関数を利用する場合、これは非常に重要です。 「ピアによって接続がリセットされました」という潜在的なエラーに対処します。このエラーは、リソースの制約や接続制限が原因でリモート サーバーが接続を突然閉じた場合に発生します。
この問題を回避するには、次の推奨事項を考慮してください。
1.同時実行レベルの最適化:
多数の同時接続 (1000 ~ 2000) を開始すると、効率的なダウンロードのための最適な同時実行レベルを超える可能性があります。パフォーマンステストを通じて最適なレベルを決定します。
2.トランスポート プロパティの設定:
同時実行レベルに一致するように Transport.MaxIdleConnsPerHost プロパティを構成します。この値が低すぎる場合、サーバー接続が繰り返し閉じられ、再び開かれるため、パフォーマンスが低下します。
3.遅延と地理を考慮してください:
サーバーと Web サイトが同じ国にある場合にダウンロードが成功したという観察結果は、遅延と地理的距離が接続の信頼性に影響を与える可能性があることを示唆しています。可能であれば、Web サイトのホスティング場所に近いサーバーでプログラムを実行することを検討してください。
4.再試行ロジックの実装:
上記の対策にもかかわらず接続のリセットが発生した場合、再試行ロジックを実装すると影響を軽減できます。失敗したリクエストを失敗としてマークする前に、制限された回数だけ自動的に再試行します。
これらの推奨事項に従うことで、「ピアによる接続リセット」エラーを効果的に防止し、次を使用して Web ページのダウンロード プロセスのパフォーマンスを最適化できます。 Go の http.Get() 関数。
以上がGo の `http.Get()` を使用する際の「ピアによる接続リセット」エラーを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。