A Reliable Actors használatának első lépései
Ez a cikk egy egyszerű Reliable Actor-alkalmazás létrehozását és hibakeresését ismerteti a Visual Studióban. A Reliable Actorsről további információt a Service Fabric Reliable Actors bemutatása című témakörben talál.
Előfeltételek
A kezdés előtt győződjön meg arról, hogy a Service Fabric fejlesztői környezete ( beleértve a Visual Studiót is) be van állítva a gépen. További információ: A fejlesztési környezet beállítása.
Új projekt létrehozása a Visual Studióban
Indítsa el a Visual Studio 2019-et vagy újabb verziót rendszergazdaként, majd hozzon létre egy új Service Fabric-alkalmazásprojektet :
A következő párbeszédpanelen válassza az Aktorszolgáltatás lehetőséget a .NET Core 2.0 alatt, és adja meg a szolgáltatás nevét.
A létrehozott projekt a következő struktúrát mutatja:
A megoldás vizsgálata
A megoldás három projektet tartalmaz:
Az alkalmazásprojekt (MyApplication). Ez a projekt az összes szolgáltatást együtt tartalmazza az üzembe helyezéshez. Az alkalmazás kezeléséhez szükséges ApplicationManifest.xml és PowerShell-szkripteket tartalmazza.
Az interfészprojekt (HelloWorld.Interfaces). Ez a projekt tartalmazza az aktor felületdefinícióját. Az aktorfelületek bármilyen nevű projektben definiálhatók. Az interfész határozza meg az aktorszerződést, amelyet az aktor implementációja és az aktort hívó ügyfelek osztanak meg. Mivel az ügyfélprojektek függhetnek tőle, általában érdemes definiálni egy olyan szerelvényben, amely elkülönül az aktor implementációjától.
Az aktorszolgáltatás projektje (HelloWorld). Ez a projekt határozza meg azt a Service Fabric szolgáltatást, amely a színészt fogja üzemeltetni. Tartalmazza a HelloWorld.cs színész implementációját. Az aktor-implementáció egy olyan osztály, amely az alaptípusból
Actor
származik, és implementálja a MyActor.Interfaces projektben definiált interfészeket. Az aktorosztálynak olyan konstruktort is implementálnia kell, amely elfogadja aActorService
példányt és az a-tActorId
, és átadja azokat az alaposztálynakActor
.Ez a projekt a Program.cs fájlt is tartalmazza, amely a Service Fabric-futtatókörnyezetben regisztrálja az aktorosztályokat a használatával
ActorRuntime.RegisterActorAsync<T>()
. AzHelloWorld
osztály már regisztrálva van. A projekthez hozzáadott további aktor-implementációkat is regisztrálni kell aMain()
metódusban.
A HelloWorld-szereplő testreszabása
A projektsablon definiál néhány metódust a IHelloWorld
felületen, és implementálja őket az HelloWorld
aktor implementálásában. Cserélje le ezeket a metódusokat, hogy az aktorszolgáltatás egy egyszerű ""Helló világ!" alkalmazás" sztringet adjon vissza.
A HelloWorld.Interfacesprojektben az IHelloWorld.cs fájlban cserélje le a felületdefiníciót az alábbiak szerint:
public interface IHelloWorld : IActor
{
Task<string> GetHelloWorldAsync();
}
A HelloWorld projektben a HelloWorld.cs fájlban cserélje le a teljes osztálydefiníciót az alábbiak szerint:
[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!");
}
}
A Ctrl-Shift-B billentyűkombinációt lenyomva hozza létre a projektet, és győződjön meg arról, hogy minden lefordítva van.
Ügyfél hozzáadása
Hozzon létre egy egyszerű konzolalkalmazást az aktorszolgáltatás meghívásához.
Kattintson a jobb gombbal a megoldásra > Megoldáskezelő Új projekt hozzáadása>... területen.
A .NET Core-projekttípusok alatt válassza a Konzolalkalmazás (.NET Core) lehetőséget. Nevezze el az ActorClient projektet.
Megjegyzés
A konzolalkalmazás nem az az alkalmazástípus, amelyet általában ügyfélként használna a Service Fabricben, de kényelmes példaként szolgál a helyi Service Fabric-fürt használatával végzett hibakereséshez és teszteléshez.
A konzolalkalmazásnak 64 bites alkalmazásnak kell lennie a felületprojekttel és más függőségekkel való kompatibilitás fenntartásához. A Megoldáskezelő kattintson a jobb gombbal az ActorClient projektre, majd kattintson a Tulajdonságok parancsra. A Build lapon állítsa a Platform célértéketx64 értékre.
Az ügyfélprojekthez a megbízható actors NuGet-csomag szükséges. Kattintson az Eszközök>NuGet Package Manager Csomagkezelő>konzol elemre. A Package Manager konzolon adja meg a következő parancsot:
Install-Package Microsoft.ServiceFabric.Actors -IncludePrerelease -ProjectName ActorClient
A NuGet-csomag és annak összes függősége telepítve van az ActorClient projektben.
Az ügyfélprojektnek hivatkoznia kell a interfaces projektre is. Az ActorClient projektben kattintson a jobb gombbal a Függőségek elemre, majd kattintson a Projekthivatkozás hozzáadása... parancsra. Válassza a Projektek > megoldás lehetőséget (ha még nincs bejelölve), majd jelölje be a HelloWorld.Interfaces melletti jelölőnégyzetet. Kattintson az OK gombra.
Az ActorClient projektben cserélje le a Program.cs teljes tartalmát a következő kódra:
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(); } } }
Futtatás és hibakeresés
Nyomja le az F5 billentyűt az alkalmazás helyi létrehozásához, üzembe helyezéséhez és futtatásához a Service Fabric fejlesztői fürtben. Az üzembe helyezési folyamat során a Kimenet ablakban láthatja az előrehaladást.
Ha a kimenet tartalmazza a szöveget, az alkalmazás készen áll, tesztelheti a szolgáltatást az ActorClient alkalmazással. A Megoldáskezelő kattintson a jobb gombbal az ActorClient projektre, majd kattintson az Új példány hibakeresése>parancsra. A parancssori alkalmazásnak meg kell jelenítenie az aktorszolgáltatás kimenetét.
Tipp
A Service Fabric Actors futtatókörnyezet aktor metódusokhoz kapcsolódó eseményeket és teljesítményszámlálókat bocsát ki. A diagnosztikában és a teljesítmény monitorozásában hasznosak.
Következő lépések
További információ arról , hogyan használják a Reliable Actors a Service Fabric platformot.