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 service fabric-utvecklingsmiljön, inklusive Visual Studio, har konfigurerats 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 :
I nästa dialogruta väljer du Aktörstjänst under .NET Core 2.0 och anger ett namn för tjänsten.
Det skapade projektet visar följande struktur:
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 valfritt 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 enActorService
instans och enActorId
och skickar dem till basklassenActor
.Det här projektet innehåller också Program.cs, som registrerar aktörsklasser med Service Fabric-körningen med .
ActorRuntime.RegisterActorAsync<T>()
KlassenHelloWorld
är redan registrerad. Eventuella ytterligare aktörsimplementeringar som läggs till i projektet måste också registreras iMain()
-metoden.
Anpassa HelloWorld-aktören
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.
Högerklicka på lösningen i Istraživač rešenja >Lägg till>nytt projekt....
Under .NET Core-projekttyperna väljer du Konsolapp (.NET Core). Ge projektet namnet ActorClient.
Kommentar
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 hjälp av det lokala Service Fabric-klustret.
Konsolprogrammet måste vara ett 64-bitarsprogram för att upprätthålla kompatibiliteten med gränssnittsprojektet och andra beroenden. I Istraživač rešenja högerklickar du på projektet ActorClient och klickar sedan på Egenskaper. På fliken Skapa anger du Plattformsmål till x64.
Klientprojektet kräver nuget-paketet reliable actors. Klicka på Verktyg>NuGet Package Manager>Package Manager Console. I Upravljač za pakete-konsolen anger du följande kommando:
Install-Package Microsoft.ServiceFabric.Actors -IncludePrerelease -ProjectName ActorClient
NuGet-paketet och alla dess beroenden installeras i Projektet ActorClient.
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 kryssrutan bredvid HelloWorld.Interfaces. Klicka på OK.
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 utdatafönstret.
När utdata innehåller texten, Programmet är klart, är det möjligt att testa tjänsten med hjälp av ActorClient-programmet. I Istraživač rešenja 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.
Dricks
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.