Go's http.Get, Concurrency, and Connection Reset by Peer
Question:
While utilizing Go routines and channels for efficient web page downloading, why do some requests fail with the "connection reset by peer" error when別の大陸のサーバーから実行されていますか?この問題に対処するには:
1。並行性レベルを最適化:
多数の並列接続(1000-2000)を開始する代わりに、異なる並行性レベルで実験して、最も効率的な数を決定します。並行性が非常に高いと、接続リセットにつながる可能性があります。 Transport.maxidleconnsperhost:
transport.maxidleconnsperhost値を並行性レベルに対応するように設定します。この値が同時接続の数よりも低い場合、各リクエスト後にサーバー接続が閉じられ、再オープンする必要があります。この再発性の開閉プロセスは、進捗を遅くし、サーバー接続の制限を超える可能性があります。
3。遅延接続の開始:
maxidleconnsperhostを適切に設定しているにもかかわらず、問題が持続する場合は、接続開始の間にわずかな遅延を導入してサーバーからの接続リセットのトリガーを避けることを検討してください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3