2

System.Net.HttpWebRequestを使用して、ロードバランサーの背後でAWS内でホストされているAPIアプリケーションをヒットしています。LBには6つのインスタンスがあり、2つの異なるAZに3つあります。その結果、LBのDNSエントリには2つのIPアドレス(AZごとに1つ)があります。

C#アプリを実行すると、Webリクエストは単一のAZ内の3つのサーバー間で完全にバランスが取れているように見えます。2番目のAZにはヒットしていません。

WebRequestオブジェクトは、LB DNSエントリにバインドされている最初のIPにのみヒットしているように見えます。これが、トラフィックのバランスが取れている理由ですが、単一のAZでのみです。

それは理にかなっていますか?WebRequestがDNSエントリにバインドされた他のIPをターゲットにするようにするにはどうすればよいですか?

4

3 に答える 3

1

HttpWebRequestは、常にリストの最初のIPアドレスを使用します。Route53は、単一のロードバランサーからランダムな順序でIPアドレスを返します。これは、AZ間で負荷を分散するのに役立ちます。

于 2013-03-15T19:39:07.863 に答える
0

C#が(.NET経由で)DNSルックアップを実行すると、その結果がキャッシュされます。これは、最初に取得したIPを引き続き使用することを意味します。

System.NetクライアントのDNSキャッシュをクリアするにはどうすればよいですか?-これはあなたを正しい方向に導くかもしれません。

于 2013-03-15T18:16:22.510 に答える
-1

AWSELBの弱点の1つに遭遇したと思います。単一のIPからのすべてのリクエストは、1つのAZにルーティングされます。これにより、トラフィックが多いがIPサブセットが小さいWebサービスではelbが問題になります。

于 2013-03-15T19:09:25.093 に答える