Azure には、パブリックに公開された Web ロールと、プライベート ネットワーク内でのみアクセスできる 2 つのワーカー ロールがあります。内部で workerroles の負荷を分散したいので、workerroles の内部エンドポイントを設定しましたが、workers と通信するためにどのアドレスを使用する必要がありますか?特定のインスタンスに固有であり、ロードバランサーを経由しませんよね?
ありがとう!
Windows Azure には内部ロード バランサーはありません。唯一のロード バランサーは、パブリック IP アドレスを持つものです。
内部アドレス (ワーカー) のみを負荷分散したい場合は、自分で維持する必要があります。つまり、同じ VNet の一部である Azure VM に何らかの種類のロード バランサーをインストールする必要があります。そのロード バランサーは、選択することができます (Windows または Linux)。また、トポロジが変更されたとき (つまり、ワーカーの再利用、ハードウェア障害、スケーリング イベント) のためにウォッチドッグ サービスを実装する必要があります。絶対に必要でない限り、このアプローチはお勧めしません。
最後のオプションは、すべてのワーカーの IP エンドポイントの (キャッシュされた) プールを持ち、必要なときにランダムに選択することです。
IIS を使用しWebRole
て動作するように構成し、選択したアルゴリズムを使用してリクエストを負荷分散するようにルールを構成できます。Reverse Proxy
Application Request Routing
最も簡単な方法は、を変更してWebRole.cs
(内部) エンドポイントのリストを取得し、WorkerRole
それをプログラムで追加することです (こちらの例を参照)。
または、Startup-Script を使用して呼び出すappcmd
ことで、同じ結果を得ることができます。
最後に、通常の WorkerRole エンドポイントではなく、(プロキシされた) IIS エンドポイントに要求を向けるようにクライアント設定を変更する必要があります。
Azure が内部負荷分散 (ILB) をサポートするようになったことに注意してください。
http://azure.microsoft.com/blog/2014/05/20/internal-load-balancing