Azure Service Fabric durum bilgisi olan hizmetlerde Güvenilir Koleksiyonlar'a giriş

Güvenilir Koleksiyonlar, tek bilgisayar uygulamaları yazıyormuş gibi yüksek oranda kullanılabilir, ölçeklenebilir ve düşük gecikme süreli bulut uygulamaları yazmanızı sağlar. Microsoft.ServiceFabric.Data.Collections ad alanı içindeki sınıflar , durumunuzu yüksek oranda kullanılabilir hale getiren bir koleksiyon kümesi sağlar. Geliştiricilerin yalnızca Reliable Collection API'lerini programlaması ve çoğaltılan ve yerel durumu Güvenilir Koleksiyonlar'ın yönetmesine izin vermeleri gerekir.

Güvenilir Koleksiyonlar ile diğer yüksek kullanılabilirlik teknolojileri (Redis, Azure Tablo hizmeti ve Azure Kuyruk hizmeti gibi) arasındaki temel fark, durumun hizmet örneğinde yerel olarak tutulması ve yüksek oranda kullanılabilir hale getirilmemesidir. Bu şu anlama gelir:

  • Tüm okumalar yereldir ve bu da düşük gecikme süresine ve yüksek aktarım hızına sahip okumalara neden olur.
  • Tüm yazma işlemleri en az sayıda ağ IOS'una neden olur ve bu da düşük gecikme süresine ve yüksek aktarım hızına sahip yazma işlemlerine neden olur.

Koleksiyonların evriminin görüntüsü.

Güvenilir Koleksiyonlar, System.Collections sınıflarının doğal evrimi olarak düşünülebilir: geliştiricinin karmaşıklığını artırmadan bulut ve çok bilgisayarlı uygulamalar için tasarlanmış yeni bir koleksiyon kümesi. Bu nedenle Reliable Collections şunlardır:

  • Çoğaltıldı: Durum değişiklikleri yüksek kullanılabilirlik için çoğaltılır.
  • Zaman uyumsuz: API'ler, GÇ tahakkuk ederken iş parçacıklarının engellenmediğinden emin olmak için zaman uyumsuzdur.
  • İşlem: API'ler, bir hizmet içinde birden çok Güvenilir Koleksiyonu kolayca yönetebilmeniz için işlemlerin özetini kullanır.
  • Kalıcı veya Geçici: Büyük ölçekli kesintilere (örneğin, veri merkezi güç kesintisine) karşı dayanıklılık için veriler diskte kalıcı hale gelebilir. Bazı Güvenilir Koleksiyonlar, çoğaltılmış bellek içi önbellek gibi tüm verilerin bellek içinde tutulduğu geçici modu (Uyarılar ile) de destekler.

Güvenilir Koleksiyonlar, uygulama durumuyla ilgili akıl yürütmeyi kolaylaştırmak için kullanıma sunulan güçlü tutarlılık garantileri sağlar. Güçlü tutarlılık, yalnızca işlemin tamamı birincil dahil olmak üzere çoğaltmaların çoğunluğunda oturum açtıktan sonra işlem işlemelerinin bitmesini sağlayarak elde edilir. Daha zayıf tutarlılık elde etmek için, uygulamalar zaman uyumsuz işleme döndürmeden önce istemciye/istek sahibine geri bildirimde bulunabilir.

Reliable Collections API'leri eşzamanlı koleksiyon API'lerinin evrimidir (System.Collections.Concurrent ad alanında bulunur):

  • Zaman uyumsuz: Eşzamanlı koleksiyonların aksine işlemler çoğaltıldığından ve kalıcı hale getirildiğinden bir görev döndürür.
  • Out parametresi yok: Out parametreleri yerine bir bool ve değeri döndürmek için kullanırConditionalValue<T>. ConditionalValue<T> gibi Nullable<T> ancak T'nin bir yapı olmasını gerektirmez.
  • İşlemler: Kullanıcının bir işlemdeki birden çok Güvenilir Koleksiyondaki eylemleri gruplandırmasını sağlamak için bir işlem nesnesi kullanır.

Bugün, Microsoft.ServiceFabric.Data.Collections üç koleksiyon içerir:

  • Güvenilir Sözlük: Anahtar/değer çiftlerinin çoğaltılmış, işlemsel ve zaman uyumsuz koleksiyonunu temsil eder. ConcurrentDictionary'e benzer şekilde hem anahtar hem de değer herhangi bir türde olabilir.
  • Güvenilir Kuyruk: Çoğaltılmış, işlemsel ve zaman uyumsuz katı ilk gelen, ilk çıkan (FIFO) kuyruğu temsil eder. ConcurrentQueue'a benzer şekilde, değer herhangi bir türde olabilir.
  • Güvenilir Eşzamanlı Kuyruk: Yüksek aktarım hızı için çoğaltılmış, işlemsel ve zaman uyumsuz en iyi çaba sıralama kuyruğudur. ConcurrentQueue'a benzer şekilde, değer herhangi bir türde olabilir.

Sonraki adımlar