2017-03-03 11 views
0

私は動的エンドポイントを持つ複数のノードでステートレスサービスを持っています。AzureサービスファブリックのRPCエンドポイント経由でノードインスタンスに接続

私はこの1つのような彼らのダイナミックなエンドポイントとServiceProxyを使用したい:私はそのエンドポイントを使用して、特定のノードのインスタンスに接続するためにServiceProxyを使用するにはどうすればよい

localhost:32010+dd1d0a27-1dec-49db-8960-83bf001355be-131329828855327547

私はこのようなServiceProxyをインスタンス化しています:

ServiceProxy.Create<T>(new Uri("fabric:/XXX));、唯一のインスタンスのノードの1つを見つけることであろう。私はエンドポイント経由で接続するノードを指定したいと思います。それ、どうやったら出来るの?

+0

listenerNameパラメータを渡そうとしましたか? – cassandrad

+0

@cassandradすべてのリスナー名が同じで、異なるノード上にあるため、すべてのリスナー名が同じであるため助けにならない – jugg1es

+0

異なるポート(インスタンスごとに1つ)にn個のエンドポイントを指定し、特定のノードごとに1つしかない場合、RemotingはNaming Serviceの助けを借りて特定のインスタンスを見つけることができます。まあ、それは試してみる計画だった。私はそれが動作しないことを知らなかった。 – cassandrad

答えて

0

Service Remotingを使用してステートレスサービスの特定のインスタンスに接続する方法はありません。ステートフルサービスの特定のパーティション/レプリカのみを対象とすることができます。

this SO answerをご覧ください。

あなたのオプションは、基本的には、以下のとおりです。HTTP通信に

  • 変更
  • ステートフルサービス
  • として再設計

あなたは自問する場合がありますもう一つは、あなたがターゲットにしたい理由です特定のインスタンスまたはノード?それはあなたが何らかのパフォーマンス上の利点を得られないからですか?あなたは、クライアントからあなたがターゲットにしたいサービスへの他の種類の親和性を持っていますか?

+0

私はロードバランサを作成しているので特定のインスタンスをターゲットにしたいですが、私はローカルクラスタを使用しています(Azureを使用することはできません)、ローカルクラスタの展開ではできるだけ負荷分散ができません教えてください。 – jugg1es

+0

SFリバースプロキシの場合、[このプロジェクト](https://github.com/spoorendonk/service-fabric-reverse-proxy)を見ると助けになるかもしれませんが、正確にはあなたが探しているものではありませんが、そこにはありますいくつかの部分は似ています。 – yoape

関連する問題