2016-06-24 69 views
5

根據服務織物文檔(https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-actors-introduction/),演員代理這種方式創建:如何創建演員代理遠程服務織物集羣

ActorId actorId = ActorId.NewId(); 

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

await myActor.DoWorkAsync(); 

好吧,這個工程並連接到我的本地集羣。但我不知道如何創建代理遠程羣集? (我與IP地址10.0.10.10,10.0.11.10,10.0.12.10三節點集羣。)

我也試過用ServicePartitionResolver,這是這裏解釋:https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-services-communication/,但沒有成功。

+0

好問題。我也希望看到這一點。能夠以這種方式與Actor交互將會產生很多應用可能性(即非基於Web的客戶端,但是由於某種原因,羣集被用作後端)。也可能使調試更快/更容易(即,所討論的actor(和它的服務)在本地臨時執行)。 –

回答

6

ActorProxy和ServiceProxy今天最適合連接到集羣中的角色和服務。您可以公開無狀態的服務,其中包含可以接受用戶請求的-1實例計數,然後使用Actor和Service遠程處理連接到羣集中的角色服務。在未來的版本中,我們可能提供開箱即用的支持遠程處理的應用程序網關。

+0

感謝您的澄清。在我的情況下,我使用一個ASP.NET應用程序託管通過IIS在單獨的服務器上處理Web請求。 Web層根據需要轉發到SF。我想更好的方法是在同一個SF應用程序中使用無狀態的WebAPI服務來直接在同一個集羣中處理請求(如下所示:https://github.com/Azure-Samples/service-fabric-dotnet-網絡的參考應用程序)。 – Henrik

+0

是的,您需要無狀態的Web API服務作爲用戶的入口點,然後在那裏您可以使用ActorProxy和ServiceProxy。 –