Reliable Actors ile çalışmaya başlama

Bu makalede Visual Studio'da basit bir Reliable Actor uygulaması oluşturma ve hata ayıklama adımları anlatılmaktadır. Reliable Actors hakkında daha fazla bilgi için bkz. Service Fabric Reliable Actors'a Giriş.

Önkoşullar

Başlamadan önce, makinenizde Visual Studio da dahil olmak üzere Service Fabric geliştirme ortamının ayarlandığından emin olun. Ayrıntılar için bkz. Geliştirme ortamını ayarlama.

Visual Studio'da yeni proje oluşturma

Visual Studio 2019 veya sonraki bir sürümü yönetici olarak başlatın ve ardından yeni bir Service Fabric Uygulaması projesi oluşturun:

Visual Studio için Service Fabric araçları - yeni proje

Sonraki iletişim kutusunda,.NET Core 2.0 altında Aktör Hizmeti'ni seçin ve hizmet için bir ad girin.

Service Fabric proje şablonları

Oluşturulan proje aşağıdaki yapıyı gösterir:

Service Fabric proje yapısı

Çözümü inceleme

Çözüm üç proje içerir:

  • Uygulama projesi (MyApplication). Bu proje, dağıtım için tüm hizmetleri bir arada paketler. Uygulamayı yönetmek için ApplicationManifest.xml ve PowerShell betiklerini içerir.

  • Arabirim projesi (HelloWorld.Interfaces). Bu proje aktörün arabirim tanımını içerir. Aktör arabirimleri herhangi bir projede herhangi bir adla tanımlanabilir. arabirimi, aktör uygulaması ve aktörü çağıran istemciler tarafından paylaşılan aktör sözleşmesini tanımlar. İstemci projeleri buna bağlı olabileceğinden, genellikle aktör uygulamasından ayrı bir derlemede tanımlamak mantıklıdır.

  • Aktör hizmeti projesi (HelloWorld). Bu proje, aktörü barındıracak Service Fabric hizmetini tanımlar. HelloWorld.cs aktörünün uygulamasını içerir. Aktör uygulaması, temel türden Actor türetilen ve MyActor.Interfaces projesinde tanımlanan arabirimleri uygulayan bir sınıftır. Bir aktör sınıfı da bir örneği kabul eden ve bunları temel Actor sınıfa geçiren bir ActorServiceActorId oluşturucu uygulamalıdır.

    Bu proje, kullanarak ActorRuntime.RegisterActorAsync<T>()aktör sınıflarını Service Fabric çalışma zamanına kaydeden Program.cs dosyasını da içerir. Sınıf HelloWorld zaten kayıtlı. Projeye eklenen tüm ek aktör uygulamaları da yöntemine Main() kaydedilmelidir.

HelloWorld aktörü özelleştirme

Proje şablonu, arabirimdeki IHelloWorld bazı yöntemleri tanımlar ve bunları HelloWorld aktör uygulamasında uygular. Aktör hizmetinin basit bir "Merhaba Dünya" dizesi döndürmesi için bu yöntemleri değiştirin.

HelloWorld.Interfaces projesindeki IHelloWorld.cs dosyasında arabirim tanımını aşağıdaki gibi değiştirin:

public interface IHelloWorld : IActor
{
    Task<string> GetHelloWorldAsync();
}

HelloWorld projesinin HelloWorld.cs dosyasında sınıf tanımının tamamını aşağıdaki gibi değiştirin:

[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!");
    }
}

Projeyi oluşturmak ve her şeyin derlendiğinden emin olmak için Ctrl-Shift-B tuşlarına basın.

İstemci ekleme

Aktör hizmetini çağırmak için basit bir konsol uygulaması oluşturun.

  1. Yeni Proje Ekle>... Çözüm Gezgini > çözüme sağ tıklayın.

  2. .NET Core proje türleri altında Konsol Uygulaması (.NET Core) öğesini seçin. Projeyi ActorClient olarak adlandırın.

    Yeni Proje Ekle iletişim kutusu

    Not

    Konsol uygulaması normalde Service Fabric'te istemci olarak kullanacağınız uygulama türü değildir, ancak yerel Service Fabric kümesini kullanarak hata ayıklama ve test için kullanışlı bir örnektir.

  3. Arabirim projesi ve diğer bağımlılıklarla uyumluluğu sürdürmek için konsol uygulamasının 64 bitlik bir uygulama olması gerekir. Çözüm Gezgini'da ActorClient projesine sağ tıklayın ve ardından Özellikler'e tıklayın. Derleme sekmesinde Platform hedefinix64 olarak ayarlayın.

    Derleme özellikleri

  4. İstemci projesi, reliable actors NuGet paketini gerektirir. Araçlar>NuGet Paket Yöneticisi Paket Yöneticisi>Konsolu'nu tıklatın. Paket Yöneticisi Konsolu'nda aşağıdaki komutu girin:

    Install-Package Microsoft.ServiceFabric.Actors -IncludePrerelease -ProjectName ActorClient
    

    NuGet paketi ve tüm bağımlılıkları ActorClient projesine yüklenir.

  5. İstemci projesi ayrıca arabirimler projesine başvuru gerektirir. ActorClient projesinde Bağımlılıklar'a sağ tıklayın ve ardından Proje Başvurusu Ekle... öğesine tıklayın. Projeler > Çözümü'ne tıklayın (henüz seçili değilse) ve HelloWorld.Interfaces'in yanındaki onay kutusunu işaretleyin. Tamam'a tıklayın.

    Başvuru ekle iletişim kutusu

  6. ActorClient projesinde , Program.cs dosyasının tüm içeriğini aşağıdaki kodla değiştirin:

    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();
            }
        }
    }
    

Çalıştırma ve hata ayıklama

Uygulamayı Service Fabric geliştirme kümesinde yerel olarak derlemek, dağıtmak ve çalıştırmak için F5 tuşuna basın. Dağıtım işlemi sırasında , ilerleme durumunu Çıkış penceresinde görebilirsiniz.

Service Fabric hata ayıklama çıkış penceresi

Çıktı metni içerdiğinde Uygulama hazır olduğunda, ActorClient uygulamasını kullanarak hizmeti test etmek mümkündür. Çözüm Gezgini'da ActorClient projesine sağ tıklayın ve ardından Hata Ayıklama>Yeni örnek başlat'a tıklayın. Komut satırı uygulaması aktör hizmetinden gelen çıkışı görüntülemelidir.

Uygulama çıkışı

İpucu

Service Fabric Actors çalışma zamanı aktör yöntemleriyle ilgili bazı olayları ve performans sayaçlarını yayar. Bunlar tanılama ve performans izlemede yararlıdır.

Sonraki adımlar

Reliable Actors'ın Service Fabric platformunu nasıl kullandığı hakkında daha fazla bilgi edinin.