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 najdete 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 o 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 :

Nástroje Service Fabric pro Visual Studio – nový projekt

V dalším dialogovém okně zvolte Služba objektu actor v části .NET Core 2.0 a zadejte název služby.

Šablony projektů Service Fabric

Vytvořený projekt zobrazuje následující strukturu:

Struktura projektu Service Fabric

Prozkoumání řešení

Řešení obsahuje tři projekty:

  • Projekt aplikace (MyApplication) Tento projekt zabalí všechny služby dohromady pro nasazení. Obsahuje skriptyApplicationManifest.xml a PowerShellu pro správu aplikace.

  • Projekt rozhraní (HelloWorld.Interfaces) Tento projekt obsahuje definici rozhraní objektu actor. Rozhraní objektu actor je možné definovat v libovolném projektu s libovolným názvem. Rozhraní definuje kontrakt objektu actor, který je sdílen implementací objektu actor a klienty, kteří objekt actor volají. Vzhledem k tomu, že klientské projekty na něm mohou záviset, obvykle má smysl definovat ji v sestavení, které je oddělené od implementace objektu actor.

  • Projekt služby objektu actor (HelloWorld). Tento projekt definuje službu Service Fabric, která bude hostovat objekt actor. Obsahuje implementaci objektu actor HelloWorld.cs. Implementace objektu actor je třída, která je odvozena ze základního typu Actor a implementuje rozhraní definovaná v projektu MyActor.Interfaces . Třída objektu actor musí také implementovat konstruktor, který přijímá ActorService instanci a ActorId a předává je do základní Actor třídy.

    Tento projekt obsahuje také program.cs, který registruje třídy actor s modulem runtime Service Fabric pomocí ActorRuntime.RegisterActorAsync<T>(). Třída HelloWorld je již zaregistrována. Všechny další implementace objektu actor přidané do projektu musí být také registrovány Main() v 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 objektu 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 nahraďte v souboru HelloWorld.cs 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šechno zkompiluje.

Přidání klienta

Vytvořte jednoduchou konzolovou aplikaci pro volání služby objektu actor.

  1. Klikněte pravým tlačítkem na řešení v Průzkumník řešení >Přidat>nový projekt....

  2. V části Typy projektů .NET Core zvolte Konzolová aplikace (.NET Core). Pojmenujte projekt ActorClient.

    Dialogové okno Přidat nový projekt

    Poznámka

    Konzolová aplikace není typem aplikace, kterou byste obvykle používali jako klienta v Service Fabric, ale představuje praktický příklad pro ladění a testování pomocí místního clusteru Service Fabric.

  3. 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í klikněte pravým tlačítkem na projekt ActorClient a pak klikněte na Vlastnosti. Na kartě Build (Sestavení ) nastavte Platform target (Cíl platformy ) na x64.

    Vlastnosti sestavení

  4. Projekt klienta vyžaduje balíček NuGet reliable actors. Klikněte na Nástroje>Konzola Správce>balíčků NuGet. 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 se nainstalují do projektu ActorClient.

  5. Projekt klienta také vyžaduje odkaz na projekt rozhraní. V projektu ActorClient klikněte pravým tlačítkem na Závislosti a pak klikněte na Přidat odkaz na projekt.... Vyberte Řešení projektů > (pokud ještě není zaškrtnuté) a zaškrtněte políčko vedle HelloWorld.Interfaces. Klikněte na OK.

    Dialogové okno Přidat odkaz

  6. V projektu ActorClient nahraďte celý obsah souboru 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ě ve vývojovém clusteru Service Fabric. Během procesu nasazení můžete průběh sledovat v okně Výstup .

Okno výstupu ladění Service Fabric

Když výstup obsahuje text Aplikace je připravená, je možné službu otestovat pomocí aplikace ActorClient. V Průzkumník řešení klikněte pravým tlačítkem na projekt ActorClient a pak klikněte na Ladit>Spustit novou instanci. Aplikace příkazového řádku by měla zobrazit výstup ze služby actor.

Výstup aplikace

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.