Komma igång med Reliable Actors

Den här artikeln beskriver hur du skapar och felsöker ett enkelt Reliable Actor-program i Visual Studio. Mer information om Reliable Actors finns i Introduktion till Service Fabric Reliable Actors.

Förutsättningar

Innan du börjar bör du se till att du har konfigurerat Service Fabric-utvecklingsmiljön, inklusive Visual Studio, på datorn. Mer information finns i hur du konfigurerar utvecklingsmiljön.

Skapa ett nytt projekt i Visual Studio

Starta Visual Studio 2019 eller senare som administratör och skapa sedan ett nytt Service Fabric-programprojekt :

Service Fabric-verktyg för Visual Studio – nytt projekt

I nästa dialogruta väljer du Aktörstjänst under .NET Core 2.0 och anger ett namn för tjänsten.

Service Fabric-projektmallar

Det skapade projektet visar följande struktur:

Service Fabric-projektstruktur

Granska lösningen

Lösningen innehåller tre projekt:

  • Programprojektet (MyApplication). Det här projektet paketar ihop alla tjänster för distribution. Den innehåller ApplicationManifest.xml och PowerShell-skript för att hantera programmet.

  • Gränssnittsprojektet (HelloWorld.Interfaces). Det här projektet innehåller gränssnittsdefinitionen för aktören. Aktörsgränssnitt kan definieras i alla projekt med valfritt namn. Gränssnittet definierar aktörskontraktet som delas av aktörsimplementeringen och klienterna som anropar aktören. Eftersom klientprojekt kan vara beroende av det är det vanligtvis klokt att definiera det i en sammansättning som är separat från aktörsimplementeringen.

  • Aktörstjänstprojektet (HelloWorld). Det här projektet definierar den Service Fabric-tjänst som ska vara värd för aktören. Den innehåller implementeringen av aktören HelloWorld.cs. En aktörsimplementering är en klass som härleds från bastypen Actor och implementerar de gränssnitt som definierats i projektet MyActor.Interfaces . En aktörsklass måste också implementera en konstruktor som accepterar en ActorService instans och en ActorId och skickar dem till basklassen Actor .

    Det här projektet innehåller också Program.cs, som registrerar aktörsklasser med Service Fabric-körningen med .ActorRuntime.RegisterActorAsync<T>() Klassen HelloWorld är redan registrerad. Eventuella ytterligare aktörsimplementeringar som läggs till i projektet måste också registreras i Main() -metoden.

Anpassa HelloWorld-skådespelaren

Projektmallen definierar vissa metoder i IHelloWorld gränssnittet och implementerar dem i aktörsimplementeringen HelloWorld . Ersätt dessa metoder så att aktörstjänsten returnerar en enkel "Hello World"-sträng.

I projektet HelloWorld.Interfaces i filen IHelloWorld.cs ersätter du gränssnittsdefinitionen på följande sätt:

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

I HelloWorld-projektet i HelloWorld.cs ersätter du hela klassdefinitionen på följande sätt:

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

Tryck på Ctrl-Skift-B för att skapa projektet och se till att allt kompileras.

Lägga till en klient

Skapa ett enkelt konsolprogram för att anropa aktörstjänsten.

  1. Högerklicka på lösningen i Solution Explorer >Lägg till>nytt projekt....

  2. Under .NET Core-projekttyperna väljer du Konsolapp (.NET Core). Ge projektet namnet ActorClient.

    Dialogrutan Lägg till nytt projekt

    Anteckning

    Ett konsolprogram är inte den typ av app som du vanligtvis använder som klient i Service Fabric, men det är ett praktiskt exempel för felsökning och testning med det lokala Service Fabric-klustret.

  3. Konsolprogrammet måste vara ett 64-bitarsprogram för att upprätthålla kompatibilitet med gränssnittsprojektet och andra beroenden. I Solution Explorer högerklickar du på projektet ActorClient och klickar sedan på Egenskaper. På fliken Skapa anger du Plattformsmål till x64.

    Byggegenskaper

  4. Klientprojektet kräver nuGet-paketet reliable actors. Klicka på Verktyg>NuGet Package Manager Package Manager>Console. I Package Manager-konsolen anger du följande kommando:

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

    NuGet-paketet och alla dess beroenden installeras i Projektet ActorClient.

  5. Klientprojektet kräver också en referens till gränssnittsprojektet. I projektet ActorClient högerklickar du på Beroenden och klickar sedan på Lägg till projektreferens.... Välj Projektlösning > (om den inte redan är markerad) och markera sedan kryssrutan bredvid HelloWorld.Interfaces. Klicka på OK.

    Dialogrutan Lägg till referens

  6. I Projektet ActorClient ersätter du hela innehållet i Program.cs med följande kod:

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

Köra och felsöka

Tryck på F5 för att skapa, distribuera och köra programmet lokalt i Service Fabric-utvecklingsklustret. Under distributionsprocessen kan du se förloppet i fönstret Utdata .

Service Fabric-felsökning av utdatafönster

När utdata innehåller texten är programmet klart, det går att testa tjänsten med hjälp av ActorClient-programmet. I Solution Explorer högerklickar du på Projektet ActorClient och klickar sedan på Felsöka>Starta ny instans. Kommandoradsprogrammet bör visa utdata från aktörstjänsten.

Programutdata

Tips

Service Fabric Actors-körningen genererar vissa händelser och prestandaräknare som är relaterade till aktörsmetoder. De är användbara vid diagnostik och prestandaövervakning.

Nästa steg

Läs mer om hur Reliable Actors använder Service Fabric-plattformen.