Share via


Azure Service Fabric uygulaması tasarımı için en iyi yöntemler

Bu makale, Azure Service Fabric'te uygulama ve hizmet oluşturmaya yönelik en iyi uygulama kılavuzlarını sağlar.

Service Fabric hakkında bilgi edinin

Uygulama tasarımı kılavuzu

Service Fabric uygulamalarının genel mimarisini ve tasarım konularını tanıyın.

API ağ geçidi seçme

Daha sonra ölçeği genişletilebilen arka uç hizmetleriyle iletişim kuran bir API ağ geçidi hizmeti kullanın. Kullanılan en yaygın API ağ geçidi hizmetleri şunlardır:

Durum bilgisi olmayan hizmetler

Her zaman Reliable Services kullanarak durum bilgisi olmayan hizmetler oluşturarak başlamanızı ve durumu bir Azure veritabanında, Azure Cosmos DB'de veya Azure Depolama depolamanızı öneririz. Dışlaştırılmış durum, çoğu geliştirici için daha tanıdık bir yaklaşımdır. Bu yaklaşım, mağazadaki sorgu özelliklerinden de yararlanmanızı sağlar.

Durum bilgisi olan hizmetler ne zaman kullanılır?

Düşük gecikme süresi senaryonuz varsa ve verileri işlemle yakın tutmanız gerektiğinde durum bilgisi olan hizmetleri göz önünde bulundurun. Bazı örnek senaryolar arasında IoT dijital ikiz cihazları, oyun durumu, oturum durumu, veritabanından verileri önbelleğe alma ve diğer hizmetlere yapılan çağrıları izlemek için uzun süre çalışan iş akışları sayılabilir.

Veri saklama zaman çerçevesine karar verin:

  • Önbellege alınan veri Dış depolarda gecikme süresi sorun olduğunda önbelleğe alma özelliğini kullanın. Durum bilgisi olan bir hizmeti kendi veri önbelleğiniz olarak kullanın veya açık kaynak SoCreate Service Fabric Dağıtılmış Önbelleğini kullanmayı göz önünde bulundurun. Bu senaryoda, önbellekteki tüm verileri kaybederseniz endişelenmenize gerek yoktur.
  • Zamana bağlı veriler. Bu senaryoda, verileri gecikme süresi için bir süre için işlemle yakın tutmanız gerekir, ancak olağanüstü durumdaki verileri kaybetmeyi göze alabilirsiniz. Örneğin, birçok IoT çözümünde verilerin, son birkaç gün içindeki ortalama sıcaklığın hesaplanması gibi işlem açısından yakın olması gerekir, ancak bu veriler kaybolursa, kaydedilen belirli veri noktaları o kadar önemli değildir. Ayrıca, bu senaryoda genellikle tek tek veri noktalarını yedeklemeyi önemsemezsiniz. Yalnızca düzenli aralıklarla dış depolama alanına yazılan hesaplanan ortalama değerleri yedeklersiniz.
  • Uzun vadeli veriler. Güvenilir koleksiyonlar verilerinizi kalıcı olarak depolayabilir. Ancak bu durumda, kümeleriniz için düzenli yedekleme ilkeleri yapılandırmak da dahil olmak üzere olağanüstü durum kurtarma için hazırlanmanız gerekir. Aslında, kümeniz bir olağanüstü durumda yok edilirse ne olacağını, yeni bir küme oluşturmanız gerekeceği durumları ve yeni uygulama örneklerini dağıtmayı ve en son yedeklemeden kurtarmayı yapılandırabilirsiniz.

Maliyetlerden tasarruf edin ve kullanılabilirliği artırın:

  • Uzak depodan veri erişimi ve işlem maliyetlerine neden olmadığınızdan ve Redis için Azure Cache gibi başka bir hizmet kullanmanız gerekmediğinden durum bilgisi olan hizmetleri kullanarak maliyetleri azaltabilirsiniz.
  • Durum bilgisi olan hizmetleri işlem için değil öncelikli olarak depolama için kullanmak pahalıdır ve bunu önermiyoruz. Durum bilgisi olan hizmetleri ucuz yerel depolama alanıyla işlem olarak düşünün.
  • Diğer hizmetlerdeki bağımlılıkları kaldırarak hizmet kullanılabilirliğinizi geliştirebilirsiniz. Kümede HA ile durumu yönetmek, sizi diğer hizmet kapalı kalma sürelerinden veya gecikme sorunlarından yalıtır.

Reliable Services ile çalışma

Service Fabric Reliable Services, durum bilgisi olmayan ve durum bilgisi olan hizmetleri kolayca oluşturmanıza olanak tanır. Daha fazla bilgi için Reliable Services'a giriş bölümüne bakın.

Reliable Actors ile çalışma

Service Fabric Reliable Actors, durum bilgisi olan sanal aktörleri kolayca oluşturmanıza olanak tanır. Daha fazla bilgi için Reliable Actors'a giriş bölümüne bakın.

Uygulama tanılamaları

Hizmet çağrılarına uygulama günlüğü ekleme konusunda kapsamlı olun. Hizmetlerin birbirini çağırdığı senaryoları tanılamanıza yardımcı olur. Örneğin, A B çağrısı C,D'yi aradığında, arama her yerde başarısız olabilir. Yeterli günlük kaydınız yoksa hataları tanılamak zordur. Çağrı birimleri nedeniyle hizmetler çok fazla günlüğe kaydediyorsa, en azından hataları ve uyarıları günlüğe kaydetmeyi unutmayın.

Azure'da tasarım kılavuzu