2016-06-24 1 views
5

Согласно документации Service Fabric (https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-actors-introduction/), актер прокси создается таким образом:Как создать актер прокси для удаленного обслуживания Fabric кластера

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

Хороший вопрос. Я тоже хотел бы это увидеть. Возможность взаимодействия с Актерами таким образом открывала бы много возможностей для приложений (то есть не веб-клиентов, но где кластер использовался как фоновый для одной или другой причины). Также возможно сделать отладку быстрее/проще (т. Е. Действующий (и его служба) временно выполняется локально). –

ответ

6

Сегодня ActorProxy и ServiceProxy лучше всего подходят для подключения к игрокам и сервисам внутри кластера. Вы можете открыть службу без состояния с -1 экземпляром экземпляра, который может принимать пользовательские запросы, а затем использовать удаленные объекты Actor и Service для подключения к службе актера в кластере. В будущем выпуске мы можем предложить нестандартный шлюз приложений, который поддерживает удаленный доступ.

+0

Спасибо за разъяснение. В моем случае я использую приложение ASP.NET, размещенное через IIS на отдельных серверах для обработки веб-запросов. Веб-уровень направляется в SF по мере необходимости. Я полагаю, что лучший подход заключается в использовании службы ASPAP без имени в одном приложении SF для обработки запроса непосредственно в одном кластере (как показано здесь: https://github.com/Azure-Samples/service-fabric-dotnet- веб-ссылка приложение). – Henrik

+0

Да, вам нужна эта служба без ведома веб-API, которая будет служить точкой входа для пользователей, а затем внутри нее вы можете использовать ActorProxy и ServiceProxy. –