0

Web クローラーを構築していますが、ターゲット サイトでは、同じ IP から 2 つ以上の同時接続が許可されていません。

私の計画は次のとおりでした: データをより高速に取得するために、4 つの追加のエラスティック IP を備えた EC2 を購入します (10 の同時接続、追加の IP から 8 つ、「メイン」IP から 2 つ)。

BindIPEndPointDelegate(ここから取得) を使用してソース IP を設定し、ページのダウンロードを開始します。

ここで私の質問が来ます: DefaultConnectionLimit はソース IP に適用されますか、それともアプリケーション全体が 2 つの同時接続に制限されますか?

4

1 に答える 1

0

ホストを指定する必要があります。そうしないと、すべてのホストに適用されます。

構成の使用:

<!-- By host -->
<configuration>
 <system.net>
  <connectionManagement>
   <add address="myapi.com" maxconnection="12"/>
   <add address="yourapi.com" maxconnection="8"/>
   <add address="74.125.236.199" maxconnection="4"/>
  </connectionManagement>
 </system.net>
</configuration>

<!-- All hosts -->
<configuration>
 <system.net>
  <connectionManagement>
   <add address="*" maxconnection="15"/>
  </connectionManagement>
 </system.net>
</configuration>

コードの使用:

var apiServicePoint1 = ServicePointManager.FindServicePoint("myapi.com");

apiServicePoint1.ConnectionLimit = 12;

var apiServicePoint2 = ServicePointManager.FindServicePoint("yourapi.com");

apiServicePoint2.ConnectionLimit = 8;

参考:https ://vincentlauzon.com/2015/12/13/beyond-2-concurrent-connections-in-net/

于 2018-10-27T22:47:03.193 に答える