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:
Sonraki iletişim kutusunda, .NET Core 2.0 altında Aktör Hizmeti'ni seçin ve hizmet için bir ad girin.
Oluşturulan proje aşağıdaki yapıyı gösterir:
Çö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ı temelActor
sınıfa geçiren birActorService
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ıfHelloWorld
zaten kayıtlı. Projeye eklenen tüm ek aktör uygulamaları da yöntemineMain()
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.
Çözüm Gezgini >Yeni Proje Ekle>... içinde çözüme sağ tıklayın.
.NET Core proje türleri altında Konsol Uygulaması (.NET Core) öğesini seçin. Projeye ActorClient adını verin.
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.
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.
İ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.
İ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.
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.
Çı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.
İ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.