Sdílet prostřednictvím


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:

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

V dalším dialogovém okně zvolte Služba objektu actor v . 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 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 a ActorId 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řída HelloWorld je již zaregistrována. Všechny další implementace objektu actor přidané do projektu musí být také zaregistrovány v Main() 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.

  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 pohodlný 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í 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.

    Vlastnosti sestavení

  4. 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.

  5. 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.

    Dialogové okno Přidat odkaz

  6. 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 .

Okno výstupu ladění Service Fabric

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.

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.