Azure Service Fabric durum bilgisi olan hizmetlerde güvenilir koleksiyonlara giriş

Güvenilir koleksiyonlar, tek bir bilgisayar uygulaması yazıyor olsanız da yüksek oranda kullanılabilir, ölçeklenebilir ve düşük gecikmeli bulut uygulamaları yazmanızı sağlar. Microsoft. ServiceFabric. Data. Collections ad alanındaki sınıflar, durumu yüksek oranda kullanılabilir hale getirmek için otomatik olarak bir koleksiyon kümesi sağlar. Geliştiricilerin yalnızca güvenilir koleksiyon API 'Leri ile programlama yapması ve güvenilir koleksiyonların çoğaltılan ve yerel durumu yönetmesine izin vermek gerekir.

Güvenilir koleksiyonlar ve diğer yüksek kullanılabilirlik teknolojileri (Redsıs, Azure Tablo hizmeti ve Azure Kuyruk hizmeti gibi) arasındaki önemli fark, durumun hizmet örneğinde yerel olarak tutulması ve yüksek oranda kullanılabilir yapılmalarıdır. Bunun anlamı:

  • Tüm okumalar yereldir, bu da düşük gecikme süresi ve yüksek aktarım hızı okumalarına neden olur.
  • Tüm yazma işlemleri, düşük gecikme süresi ve yüksek aktarım hızı yazmaları ile sonuçlanan en az ağ IOs sayısına tabi olur.

Koleksiyonların gelişini görüntüsü.

Güvenilir koleksiyonlar, sistem. Collections sınıflarının doğal evrimi olarak düşünülebilir: geliştirici için karmaşıklığı arttırmadan bulut ve çoklu bilgisayar uygulamaları için tasarlanan yeni bir koleksiyonlar kümesi. Bu nedenle, güvenilir koleksiyonlar şunlardır:

  • Çoğaltılan: durum değişiklikleri yüksek kullanılabilirlik için çoğaltılır.
  • Zaman uyumsuz: GÇ 'Leri yüklerken iş parçacıklarının engellenmediğinden emin olmak için API 'Ler zaman uyumsuzdur.
  • İşlem: API 'Ler, bir hizmette birden çok güvenilir koleksiyonu kolayca yönetebilmeniz için işlem soyutlamasını kullanır.
  • Kalıcı veya geçici: veriler, büyük ölçekli kesintilere karşı dayanıklılık için diske (örneğin, bir veri merkezi güç kesintisi) kalıcı olarak devam edebilir. Bazı güvenilir Koleksiyonlar ayrıca, çoğaltılan bellek içi önbellek gibi tüm verilerin bellekte tutulduğu geçici modu ( Uyarılarile) destekler.

Güvenilir koleksiyonlar, uygulama durumunu daha kolay hale getirmek için önemli tutarlılık sağlar. Kesin tutarlılık, işlem yürütmelerinin yalnızca, birincil dahil olmak üzere bir çok çoğaltmalarda tüm işlem günlüğe kaydedildikten sonra bitmesini sağlamak tarafından gerçekleştirilir. Daha zayıf tutarlılık elde etmek için, uygulamalar zaman uyumsuz tamamlama döndürülmesinden önce istemci/istek sahibine geri bildirim alabilir.

Güvenilir koleksiyonlar API 'Leri, eşzamanlı koleksiyonlar API 'lerinin bir gelişmidir ( System. Collections. eşzamanlı ad alanında bulunur):

  • Zaman uyumsuz: eşzamanlı koleksiyonların aksine, işlemler çoğaltılmakta ve kalıcı hale getirilir.
  • Out parametresi yok: ConditionalValue<T> bool out parametreleri yerine bir ve değeri döndürmek için kullanılır. ConditionalValue<T> gibidir, Nullable<T> ancak T 'nin bir struct olması gerekmez.
  • İşlemler: kullanıcının eylemleri bir işlemde birden çok güvenilir koleksiyonda grupkullanmasını sağlamak için bir işlem nesnesi kullanır.

Günümüzde Microsoft. ServiceFabric. Data. Collections üç koleksiyon vardır:

  • Güvenilir sözlük: anahtar/değer çiftlerinin çoğaltılan, işlemsel ve zaman uyumsuz koleksiyonunu temsil eder. ConcurrentDictionary ile benzer şekilde, hem anahtar hem de değer herhangi bir türde olabilir.
  • Güvenilir sıra: çoğaltılan, işlemsel ve zaman uyumsuz katı, ilk çıkar (FIFO) kuyruğunu temsil eder. ConcurrentQueue ile benzer şekilde, değer herhangi bir türde olabilir.
  • Güvenilir eşzamanlı kuyruk: yüksek aktarım hızı için çoğaltılan, işlemsel ve zaman uyumsuz en iyi çaba sırası kuyruğunu temsil eder. ConcurrentQueue ile benzer şekilde, değer herhangi bir türde olabilir.

Sonraki adımlar