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 tüm hizmetleri dağıtım için birlikte paketler. Uygulamayı yönetmek için ApplicationManifest.xml ve PowerShell betiklerini içerir.

  • Arabirim projesi (HelloWorld.Interfaces). Bu proje aktör için arabirim tanımını içerir. Aktör arabirimleri herhangi bir projede herhangi bir adla tanımlanabilir. Arabirim, 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. Aktörün HelloWorld.cs 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 . Aktör sınıfı ayrıca bir örneği kabul eden ve bunları temel Actor sınıfa geçiren bir ActorService ActorId oluşturucu da uygulamalıdır.

    Bu proje ayrıca kullanarak aktör sınıflarını Service Fabric çalışma zamanına ActorRuntime.RegisterActorAsync<T>()kaydeden Program.cs 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 projesinin IHelloWorld.cs dosyasında arabirim tanımını aşağıdaki gibi değiştirin:

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

HelloWorld projesinde, HelloWorld.cs tüm sınıf tanımı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. Çözüm Gezgini >Yeni Proje Ekle>... içinde çözüme sağ tıklayın.

  2. .NET Core proje türleri altında Konsol Uygulaması (.NET Core) öğesini seçin. Projeye ActorClient adını verin.

    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 korumak için konsol uygulamasının 64 bitlik bir uygulama olması gerekir. Çözüm Gezgini'de ActorClient projesine sağ tıklayın ve ardından Özellikler'e tıklayın. Oluştur sekmesinde Platform hedefini x64 olarak ayarlayın.

    Derleme özellikleri

  4. İstemci projesi, güvenilir aktörler NuGet paketini gerektirir. Araçlar>NuGet Paket Yöneticisi>Paket Yöneticisi Konsolu’na tıklayı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...'ye tıklayın. Projeler Çözümü'ne (henüz seçili değilse) tıklayın 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 içeriğinin tamamını 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 Yeni örneği başlat'ta Hata Ayıkla'ya>tıklayın. Komut satırı uygulaması aktör hizmetinden çı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.