2016-06-24 7 views
5

Nach dem Service-Fabric docs (https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-actors-introduction/), ein Schauspieler Proxy erstellt auf diese Weise erstellen:Wie Schauspieler Proxy Remote Service Fabric Cluster

ActorId actorId = ActorId.NewId(); 

IMyActor myActor = ActorProxy.Create<IMyActor>(actorId, new Uri("fabric:/MyApp/MyActorService")); 

await myActor.DoWorkAsync(); 

Ok, das funktioniert und eine Verbindung zu meinem lokalen Cluster. Aber ich kann nicht herausfinden, wie man einen Proxy zu einem Remote Cluster erstellt? (Ich habe einen Drei-Knoten-Cluster mit dem IPs 10.0.10.10, 10.0.11.10, 10.0.12.10.)

Ich habe auch versucht die ServicePartitionResolver zu verwenden, die hier erklärt: https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-services-communication/, aber ohne Erfolg.

+0

Gute Frage. Ich für meinen Teil möchte das auch sehen. Die Möglichkeit, mit Akteuren auf diese Weise zu interagieren, würde viele Anwendungsmöglichkeiten eröffnen (d. H. Nicht webbasierte Clients, aber wo Cluster aus dem einen oder anderen Grund als Back-End verwendet wird). Außerdem kann das Debuggen möglicherweise schneller/einfacher gemacht werden (d. H. Der fragliche Akteur (und sein Dienst) wird vorübergehend lokal ausgeführt). –

Antwort

6

ActorProxy und ServiceProxy funktionieren heute am besten für die Verbindung mit Akteuren und Diensten innerhalb des Clusters. Sie können einen zustandslosen Dienst mit -1 Instanzanzahl verfügbar machen, der die Benutzeranforderungen akzeptieren kann, und dann die Actor- und Dienst-Remoting-Funktion verwenden, um eine Verbindung mit dem Akteursdienst innerhalb des Clusters herzustellen. In der zukünftigen Version können wir ein Out-of-the-Box-Anwendungs-Gateway anbieten, das Remoting unterstützt.

+0

Danke für die Klarstellung. In meinem Fall verwende ich eine ASP.NET-Anwendung, die über IIS auf separaten Servern gehostet wird, um Webanforderungen zu bearbeiten. Die Web-Ebene leitet nach Bedarf an SF weiter. Ich denke, ein besserer Ansatz besteht darin, einen zustandslosen WebAPI-Dienst innerhalb derselben SF-Anwendung zu verwenden, um die Anfrage direkt im selben Cluster zu bearbeiten (wie hier gezeigt: https://github.com/Azure-Samples/service-fabric-dotnet- Web-Referenz-App). – Henrik

+0

Ja, Sie benötigen diesen statuslosen Web-API-Dienst als Einstiegspunkt für Benutzer, und dann können Sie dort ActorProxy und ServiceProxy verwenden. –

Verwandte Themen