Wprowadzenie do usługi Reliable Actors

W tym artykule opisano tworzenie i debugowanie prostej aplikacji Reliable Actor w programie Visual Studio. Aby uzyskać więcej informacji na temat elementów Reliable Actors, zobacz Wprowadzenie do usługi Service Fabric Reliable Actors.

Wymagania wstępne

Przed rozpoczęciem upewnij się, że masz środowisko programistyczne usługi Service Fabric, w tym program Visual Studio, skonfigurowane na maszynie. Aby uzyskać szczegółowe informacje, zobacz , jak skonfigurować środowisko projektowe.

Utworzenie nowego projektu w Visual Studio

Uruchom program Visual Studio 2019 lub nowszy jako administrator, a następnie utwórz nowy projekt aplikacji usługi Service Fabric :

Narzędzia usługi Service Fabric dla programu Visual Studio — nowy projekt

W następnym oknie dialogowym wybierz pozycję Usługa aktora w obszarze .NET Core 2.0 i wprowadź nazwę usługi.

Szablony projektów usługi Service Fabric

Utworzony projekt przedstawia następującą strukturę:

Struktura projektu usługi Service Fabric

Badanie rozwiązania

Rozwiązanie zawiera trzy projekty:

  • Projekt aplikacji (MyApplication). Ten projekt pakuje wszystkie usługi razem do wdrożenia. Zawiera on skryptyApplicationManifest.xml i programu PowerShell do zarządzania aplikacją.

  • Projekt interfejsu (HelloWorld.Interfaces). Ten projekt zawiera definicję interfejsu aktora. Interfejsy aktora można zdefiniować w dowolnym projekcie o dowolnej nazwie. Interfejs definiuje kontrakt aktora, który jest współużytkowany przez implementację aktora i klientów wywołujących aktora. Ponieważ projekty klienckie mogą być od niego zależne, zwykle warto zdefiniować go w zestawie, który jest oddzielony od implementacji aktora.

  • Projekt usługi aktora (HelloWorld). Ten projekt definiuje usługę Service Fabric, która będzie hostować aktora. Zawiera implementację aktora HelloWorld.cs. Implementacja aktora to klasa, która pochodzi z typu Actor podstawowego i implementuje interfejsy zdefiniowane w projekcie MyActor.Interfaces . Klasa aktora musi również zaimplementować konstruktor, który akceptuje ActorService wystąpienie i element ActorId i przekazuje je do klasy bazowej Actor .

    Ten projekt zawiera również plik Program.cs, który rejestruje klasy aktorów w środowisku uruchomieniowym usługi Service Fabric przy użyciu polecenia ActorRuntime.RegisterActorAsync<T>(). Klasa jest już zarejestrowana HelloWorld . Wszelkie dodatkowe implementacje aktorów dodane do projektu muszą być również zarejestrowane w metodzie Main() .

Dostosowywanie aktora HelloWorld

Szablon projektu definiuje niektóre metody w interfejsie IHelloWorld i implementuje je w implementacji aktora HelloWorld . Zastąp te metody, aby usługa aktora zwracała prosty ciąg "Hello world".

W projekcie HelloWorld.Interfaces w pliku IHelloWorld.cs zastąp definicję interfejsu w następujący sposób:

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

W projekcie HelloWorld w pliku HelloWorld.cs zastąp całą definicję klasy w następujący sposób:

[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!");
    }
}

Naciśnij klawisze Ctrl-Shift-B , aby skompilować projekt i upewnić się, że wszystko jest kompilowane.

Dodawanie klienta

Utwórz prostą aplikację konsolową, aby wywołać usługę aktora.

  1. Kliknij prawym przyciskiem myszy rozwiązanie w Eksplorator rozwiązań >Dodaj>nowy projekt....

  2. W obszarze typy projektów .NET Core wybierz pozycję Aplikacja konsolowa (.NET Core). Nadaj projektowi nazwę ActorClient.

    Okno dialogowe Dodawanie nowego projektu

    Uwaga

    Aplikacja konsolowa nie jest typem aplikacji, której zwykle używa się jako klienta w usłudze Service Fabric, ale ułatwia debugowanie i testowanie przy użyciu lokalnego klastra usługi Service Fabric.

  3. Aplikacja konsolowa musi być aplikacją 64-bitową, aby zachować zgodność z projektem interfejsu i innymi zależnościami. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt ActorClient, a następnie kliknij polecenie Właściwości. Na karcie Kompilacja ustaw wartość Docelowa platformy na x64.

    Właściwości kompilacji

  4. Projekt klienta wymaga pakietu NuGet reliable actors. Kliknij pozycję Narzędzia Konsola>Menedżera>pakietów NuGet Menedżer pakietów. W konsoli Menedżera pakietów wprowadź następujące polecenie:

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

    Pakiet NuGet i wszystkie jego zależności są instalowane w projekcie ActorClient.

  5. Projekt klienta wymaga również odwołania do projektu interfejsów. W projekcie ActorClient kliknij prawym przyciskiem myszy pozycję Zależności, a następnie kliknij pozycję Dodaj odwołanie do projektu.... Wybierz pozycję Rozwiązanie projektów > (jeśli jeszcze nie wybrano), a następnie zaznacz pole wyboru obok pozycji HelloWorld.Interfaces. Kliknij przycisk OK.

    Okno dialogowe Dodawanie odwołania

  6. W projekcie ActorClient zastąp całą zawartość pliku Program.cs następującym kodem:

    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();
            }
        }
    }
    

Uruchamianie i debugowanie

Naciśnij klawisz F5 , aby skompilować, wdrożyć i uruchomić aplikację lokalnie w klastrze deweloperów usługi Service Fabric. Podczas procesu wdrażania możesz zobaczyć postęp w oknie Dane wyjściowe .

Okno danych wyjściowych debugowania usługi Service Fabric

Gdy dane wyjściowe zawierają tekst, aplikacja jest gotowa, można przetestować usługę przy użyciu aplikacji ActorClient. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy projekt ActorClient, a następnie kliknij polecenie Debuguj>nowe wystąpienie. Aplikacja wiersza polecenia powinna wyświetlać dane wyjściowe z usługi aktora.

Dane wyjściowe aplikacji

Porada

Środowisko uruchomieniowe usługi Service Fabric Actors emituje niektóre zdarzenia i liczniki wydajności związane z metodami aktora. Są one przydatne w zakresie diagnostyki i monitorowania wydajności.

Następne kroki

Dowiedz się więcej o sposobie używania platformy Service Fabric przez usługę Reliable Actors.