【问题标题】:How to create actor proxy to remote Service Fabric cluster如何为远程 Service Fabric 集群创建 Actor 代理
【发布时间】:2016-10-27 05:21:11
【问题描述】:

根据 Service Fabric 文档 (https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-actors-introduction/),actor 代理是这样创建的:

ActorId actorId = ActorId.NewId();

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

await myActor.DoWorkAsync();

好的,这可以正常工作并连接到我的本地集群。但我不知道如何为 remote 集群创建代理? (我有一个 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/,但没有成功。

【问题讨论】:

  • 好问题。我也想看到这个。能够以这种方式与 Actor 进行交互将打开许多应用程序的可能性(即非基于 Web 的客户端,但出于某种原因将集群用作后端)。也可能使调试更快/更容易(即有问题的参与者(及其服务)暂时在本地执行)。

标签: c# azure-service-fabric


【解决方案1】:

如今,ActorProxy 和 ServiceProxy 最适合连接到集群中的参与者和服务。您可以公开一个实例计数为 -1 的无状态服务,该服务可以接受用户请求,然后使用 Actor 和 Service remoting 连接到集群内的 Actor 服务。在未来的版本中,我们可能会提供支持远程处理的开箱即用的应用程序网关。

【讨论】:

  • 感谢您的澄清。就我而言,我使用通过 IIS 托管在不同服务器上的 ASP.NET 应用程序来处理 Web 请求。 Web 层根据需要转发到 SF。我想更好的方法是在同一个 SF 应用程序中使用无状态 WebAPI 服务来直接在同一个集群中处理请求(如下所示:github.com/Azure-Samples/…)。
  • 是的,你需要那个无状态的 Web API 服务作为用户的入口点,然后在里面你可以使用 ActorProxy 和 ServiceProxy。
猜你喜欢
  • 2018-11-17
  • 2018-05-06
  • 2017-09-17
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 2017-02-02
  • 2015-09-06
  • 1970-01-01
相关资源
最近更新 更多