シナリオ1(作業)にリスニングAzureのサービスファブリックサービスロードバランシング:ここでは正常に動作シナリオを:私は2公にアクセスステートレスなサービスを持っているfooとbarURI接頭辞
- のFoo:2個の場合、リスニングポートで
8081
- はバー:1つのインスタンスは、ポートでリッスン要求を送信
8082
はどちらかhttp://clusteruri:8081
またはhttp://clusteruri:8082
は正常に動作しますd Fooの場合、2つのインスタンスがホストされている2つのノード間で要求がうまく分散されていることがわかります。
シナリオ2(動作しない):ここで私は有効にしたいシナリオ:再び2つのステートレスサービスfooとbar
- のFoo:2個の場合、URI接頭辞
http://+:8080/foo
- バーに聞いて: 1つのインスタンス、URIプレフィックスに聞いて
http://+:8080/bar
両方のサービスが同じポートをリッスン、しかしますのでご注意ください異なるパス(WebListenerのようにhttp.sysの上に構築されたホストを使用して実現)
ここで物事は奇妙になり始めます:ASF /ロードバランサは本当にそれを理解せず、3つのノードすべてがポート8080でリッスンすると思って、Fooへのいくつかの要求がバーをホストするノードワンウェイ。
ASF /ロードバランサは、サービスが専用ポートでリッスンするシナリオを自動的に処理できますが、実際には同じポート(ただし異なるパス)でリッスンするサービスはサポートしていないようです。
私の質問
- (すなわちルーティングを行うカスタムアプリゲートウェイサービスを実装せずに)、それはシナリオ1のために働くようにシナリオ2が「箱から出して、」作業を取得する方法はありますか?
- シナリオ1を稼働させるためにASFがどのように設定/通信するかについて、誰かが光を当てることができますか?私。 FooへのリクエストがNode0またはNode1のいずれかに送られ、Barへのリクエストは、リクエストが送信されるポートに応じてNode2に移動する必要があるロードバランサをASFが設定したことを「見る」ことができますか?
あなた通信リスナーのコードを共有していただけますか?プロキシを作成する方法 – cassandrad