Поделиться через


Начало работы с надежными субъектами

В этой статье описывается создание и отладка простого приложения Reliable Actor в Visual Studio. Дополнительные сведения о надежных акторах см. в разделе «Общие сведения о надежных акторах Service Fabric».

Предпосылки

Прежде чем начать, убедитесь, что на компьютере настроена среда разработки Service Fabric, включая Visual Studio. Дополнительные сведения см. в статье о настройке среды разработки.

Создание проекта в Visual Studio

Запустите Visual Studio 2019 или более поздней версии от имени администратора и создайте проект приложения Service Fabric :

Средства Service Fabric для Visual Studio — новый проект

В следующем диалоговом окне выберите Actor Service в разделе .NET Core 2.0 и введите имя службы.

Шаблоны проектов Service Fabric

Созданный проект показывает следующую структуру:

Структура проекта Service Fabric

Изучение решения

Решение содержит три проекта:

  • Проект приложения (MyApplication). Этот проект объединяет все службы для развертывания. Он содержит скрипты ApplicationManifest.xml и PowerShell для управления приложением.

  • Проект интерфейса (HelloWorld.Interfaces). Этот проект содержит определение интерфейса для субъекта. Интерфейсы субъектов можно определить в любом проекте с любым именем. Интерфейс определяет контракт актора, общий для реализации актора и клиентов, вызывающих актора. Поскольку клиентские проекты могут зависеть от этого, обычно имеет смысл определить его в сборке, отдельной от реализации актора.

  • Проект актер-службы (HelloWorld). Этот проект определяет службу Service Fabric, которая будет размещать актера. Он содержит реализацию актора HelloWorld.cs. Реализация субъекта — это класс, производный от базового типа Actor и реализующий интерфейсы, определенные в проекте MyActor.Interfaces . Класс актера также должен реализовать конструктор, который принимает ActorService экземпляр и объект ActorId и передает их в базовый Actor класс.

    Этот проект также содержит Program.cs, который регистрирует классы субъектов в среде выполнения Service Fabric с помощью ActorRuntime.RegisterActorAsync<T>(). Класс HelloWorld уже зарегистрирован. Все дополнительные реализации субъектов, добавленные в проект, также должны быть зарегистрированы в методе Main() .

Настройка субъекта HelloWorld

Шаблон проекта определяет некоторые методы в интерфейсе IHelloWorld и реализует их в реализации актора HelloWorld. Замените эти методы, чтобы служба акторов возвращала простую строку "Hello World".

В проекте HelloWorld.Interfaces в файле IHelloWorld.cs замените определение интерфейса следующим образом:

public interface IHelloWorld : IActor
{
    Task<string> GetHelloWorldAsync();
}

В проекте HelloWorld в HelloWorld.cs замените все определение класса следующим образом:

[StatePersistence(StatePersistence.Persisted)]
internal class HelloWorld : Actor, IHelloWorld
{
    public HelloWorld(ActorService actorService, ActorId actorId)
        : base(actorService, actorId)
    {
    }

    public Task<string> GetHelloWorldAsync()
    {
        return Task.FromResult("Hello from my reliable actor!");
    }
}

Нажмите клавиши CTRL-SHIFT-B , чтобы создать проект и убедиться, что все компилируется.

Добавление клиента

Создайте простое консольное приложение для вызова акторной службы.

  1. Щелкните правой кнопкой мыши на решении в обозревателе решений > и выберите Добавить>Новый проект....

  2. В разделе типов проектов .NET Core выберите консольное приложение (.NET Core). Назовите проект ActorClient.

    Диалоговое окно

    Примечание.

    Консольное приложение не является типом приложения, которое обычно используется в Качестве клиента в Service Fabric, но это удобно для отладки и тестирования с помощью локального кластера Service Fabric.

  3. Консольное приложение должно быть 64-разрядным приложением для обеспечения совместимости с проектом интерфейса и другими зависимостями. В обозревателе решений щелкните правой кнопкой мыши проект ActorClient и выберите пункт "Свойства". На вкладке "Сборка" установите Целевая платформа в значение x64.

    Свойства сборки

  4. Для клиентского проекта требуется пакет NuGet надежных субъектов. Выберите Инструменты>Диспетчер пакетов NuGet>Консоль диспетчера пакетов. В консоли диспетчера пакетов введите следующую команду:

    Install-Package Microsoft.ServiceFabric.Actors -IncludePrerelease -ProjectName ActorClient
    

    Пакет NuGet и все его зависимости устанавливаются в проекте ActorClient.

  5. Для клиентского проекта также требуется ссылка на проект интерфейсов. В проекте ActorClient щелкните правой кнопкой мыши Зависимости и затем нажмите Добавить ссылку на проект.... Выберите Проекты > Решение (если оно еще не выбрано), а затем установите флажок рядом с HelloWorld.Interfaces. Щелкните OK.

    Диалоговое окно добавления ссылки

  6. В проекте ActorClient замените все содержимое Program.cs следующим кодом:

    using System;
    using System.Threading.Tasks;
    using Microsoft.ServiceFabric.Actors;
    using Microsoft.ServiceFabric.Actors.Client;
    using HelloWorld.Interfaces;
    
    namespace ActorClient
    {
        class Program
        {
            static void Main(string[] args)
            {
                IHelloWorld actor = ActorProxy.Create<IHelloWorld>(ActorId.CreateRandom(), new Uri("fabric:/MyApplication/HelloWorldActorService"));
                Task<string> retval = actor.GetHelloWorldAsync();
                Console.Write(retval.Result);
                Console.ReadLine();
            }
        }
    }
    

Запуск и отладка

Нажмите клавишу F5 , чтобы создать, развернуть и запустить приложение локально в кластере разработки Service Fabric. Во время процесса развертывания можно увидеть ход выполнения в окне вывода .

Окно вывода отладки Service Fabric

Когда выходные данные содержат текст, приложение готово, можно протестировать службу с помощью приложения ActorClient. В обозревателе решений щелкните правой кнопкой мыши проект ActorClient , а затем нажмите кнопку "Отладка>запуска нового экземпляра". Приложение командной строки должно отображать выходные данные из актерной службы.

Выходные данные приложения

Подсказка

Среда выполнения Actors Service Fabric выдает некоторые события и счетчики производительности, связанные с методами акторов. Они полезны в диагностике и мониторинге производительности.

Дальнейшие действия

Узнайте больше о том, как Надежные субъекты используют платформу Service Fabric.