Začínáme s Reliable Actors
Tento článek vás provede vytvořením a laděním jednoduché aplikace Reliable Actor v sadě Visual Studio. Další informace o Reliable Actors naleznete v tématu Úvod do Service Fabric Reliable Actors.
Požadavky
Než začnete, ujistěte se, že máte na počítači nastavené vývojové prostředí Service Fabric, včetně sady Visual Studio. Podrobnosti najdete v tématu nastavení vývojového prostředí.
Vytvoření nového projektu v sadě Visual Studio
Spusťte Visual Studio 2019 nebo novější jako správce a pak vytvořte nový projekt aplikace Service Fabric:
V dalším dialogovém okně zvolte Služba objektu actor v . NET Core 2.0 a zadejte název služby.
Vytvořený projekt zobrazuje následující strukturu:
Prozkoumání řešení
Řešení obsahuje tři projekty:
Projekt aplikace (MyApplication) Tento projekt zabalí všechny služby společně pro nasazení. Obsahuje ApplicationManifest.xml a skripty PowerShellu pro správu aplikace.
Projekt rozhraní (HelloWorld.Interfaces) Tento projekt obsahuje definici rozhraní objektu actor. Rozhraní objektu actor lze definovat v libovolném projektu s libovolným názvem. Rozhraní definuje kontrakt objektu actor, který je sdílen implementací objektu actor, a klienty volají objekt actor. Vzhledem k tomu, že klientské projekty na něm můžou záviset, obvykle je vhodné je definovat v sestavení, které je oddělené od implementace objektu actor.
Projekt služby actor (HelloWorld) Tento projekt definuje službu Service Fabric, která bude hostitelem objektu actor. Obsahuje implementaci objektu actor, HelloWorld.cs. Implementace objektu actor je třída, která je odvozena od základního typu
Actor
a implementuje rozhraní definovaná v projektu MyActor.Interfaces . Třída actor musí také implementovat konstruktor, který přijímáActorService
instanci a aActorId
předává je do základníActor
třídy.Tento projekt obsahuje také Program.cs, který registruje třídy actor v modulu runtime Service Fabric pomocí
ActorRuntime.RegisterActorAsync<T>()
. TřídaHelloWorld
je již zaregistrována. Všechny další implementace objektu actor přidané do projektu musí být také zaregistrovány vMain()
metodě.
Přizpůsobení objektu actor HelloWorld
Šablona projektu definuje některé metody v IHelloWorld
rozhraní a implementuje je v implementaci objektu HelloWorld
actor. Nahraďte tyto metody tak, aby služba actor vrátila jednoduchý řetězec "Hello World".
V projektu HelloWorld.Interfaces v souboru IHelloWorld.cs nahraďte definici rozhraní následujícím způsobem:
public interface IHelloWorld : IActor
{
Task<string> GetHelloWorldAsync();
}
V projektu HelloWorld v HelloWorld.cs nahraďte celou definici třídy následujícím způsobem:
[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!");
}
}
Stisknutím kombinace kláves Ctrl-Shift-B sestavte projekt a ujistěte se, že se vše zkompiluje.
Přidání klienta
Vytvořte jednoduchou konzolovou aplikaci pro volání služby actor.
Klikněte pravým tlačítkem na řešení v Průzkumník řešení >Přidat>nový projekt....
V části typy projektů .NET Core zvolte Konzolová aplikace (.NET Core). Pojmenujte projekt ActorClient.
Poznámka:
Konzolová aplikace není typem aplikace, kterou byste obvykle používali jako klienta v Service Fabric, ale představuje pohodlný příklad pro ladění a testování pomocí místního clusteru Service Fabric.
Konzolová aplikace musí být 64bitová aplikace, aby byla zachována kompatibilita s projektem rozhraní a dalšími závislostmi. V Průzkumník řešení klepněte pravým tlačítkem myši na projekt ActorClient a potom klepněte na příkaz Vlastnosti. Na kartě Sestavení nastavte cíl platformy na x64.
Klientský projekt vyžaduje balíček NuGet Reliable Actors. Klikněte na Nástroje>Správce balíčků NuGet>Konzola správce balíčků. V konzole Správce balíčků zadejte následující příkaz:
Install-Package Microsoft.ServiceFabric.Actors -IncludePrerelease -ProjectName ActorClient
Balíček NuGet a všechny jeho závislosti jsou nainstalovány v projektu ActorClient.
Klientský projekt také vyžaduje odkaz na projekt rozhraní. V projektu ActorClient klepněte pravým tlačítkem myši na Závislosti a potom klepněte na příkaz Přidat odkaz projektu.... Vyberte Řešení projektů > (pokud ještě není zaškrtnuté) a zaškrtněte políčko vedle možnosti HelloWorld.Interfaces. Klikněte na OK.
V projektu ActorClient nahraďte celý obsah Program.cs následujícím kódem:
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(); } } }
Spuštění a ladění
Stisknutím klávesy F5 sestavte, nasaďte a spusťte aplikaci místně v vývojovém clusteru Service Fabric. Během procesu nasazení uvidíte průběh v okně Výstup .
Když výstup obsahuje text, aplikace je připravená, je možné otestovat službu pomocí aplikace ActorClient. V Průzkumník řešení klikněte pravým tlačítkem myši na projekt ActorClient a potom klepněte na tlačítko Ladit>spustit novou instanci. Aplikace příkazového řádku by měla zobrazit výstup ze služby actor.
Tip
Modul runtime Service Fabric Actors generuje některé události a čítače výkonu související s metodami objektu actor. Jsou užitečné při diagnostice a monitorování výkonu.
Další kroky
Přečtěte si další informace o tom, jak Reliable Actors používají platformu Service Fabric.