Megosztás a következőn keresztül:


A Reliable Collections bemutatása az Azure Service Fabric állapotalapú szolgáltatásaiban

A megbízható gyűjtemények lehetővé teszik, hogy magas rendelkezésre állású, méretezhető és kis késésű felhőalapú alkalmazásokat írjon, mintha egyetlen számítógépes alkalmazást ír. A Microsoft.ServiceFabric.Data.Collections névtér osztályai olyan gyűjteményeket biztosítanak, amelyek automatikusan magas rendelkezésre állásúvá teszik az állapotot. A fejlesztőknek csak a Reliable Collection API-kra kell programozniuk, és lehetővé kell tenniük, hogy a Reliable Collections felügyelje a replikált és a helyi állapotot.

A Reliable Collections és más magas rendelkezésre állású technológiák (például a Redis, az Azure Table service és az Azure Queue szolgáltatás) közötti fő különbség az, hogy az állapot helyileg marad a szolgáltatáspéldányban, miközben magas rendelkezésre állásúvá is válik. This means that:

  • Minden olvasás helyi, ami alacsony késést és nagy átviteli sebességet eredményez.
  • Minden írás a hálózati IOS minimális számát eredményezi, ami alacsony késést és nagy átviteli sebességet eredményez.

Image of evolution of collections.

A megbízható gyűjtemények a System.Collections osztályok természetes fejlődésének tekinthetők : a felhőbeli és többszámítógépes alkalmazásokhoz tervezett gyűjtemények új készlete, amely a fejlesztő számára nem növeli az összetettségét. Így a reliable collections a következők:

  • Replikált: Az állapotmódosítások replikálva vannak a magas rendelkezésre állás érdekében.
  • Aszinkron: Az API-k aszinkron módon biztosítják, hogy a szálak ne legyenek blokkolva az I/O-k felmerülésekor.
  • Tranzakciós: Az API-k a tranzakciók absztrakcióját használják, hogy egy szolgáltatáson belül több megbízható gyűjteményt is könnyedén kezelhessenek.
  • Tartós vagy volatilis: Az adatok a lemezen tárolhatók a nagy léptékű kimaradások (például adatközpontok áramkimaradása) tartóssága érdekében. Egyes megbízható gyűjtemények olyan illékony módot is támogatnak (a Kikötésekkel), ahol minden adat memóriában marad, például replikált memóriabeli gyorsítótár.

A megbízható gyűjtemények erős konzisztenciát garantálnak a dobozon kívül, hogy megkönnyítse az alkalmazásállapotra vonatkozó érvelést. Erős konzisztencia érhető el úgy, hogy a tranzakció véglegesítése csak akkor fejeződik be, ha a teljes tranzakciót a replikák többségi kvórumában naplózták, beleértve az elsődlegest is. A gyengébb konzisztencia érdekében az alkalmazások az aszinkron véglegesítés visszatérése előtt vissza tudnak nyugtázni az ügyfélnek/kérelmezőnek.

A Reliable Collections API-k az egyidejű gyűjtemény api-k (a System.Collections.Concurrent névtérben találhatók):

  • Aszinkron: Egy feladatot ad vissza, mivel az egyidejű gyűjteményekkel ellentétben a rendszer replikálja és megőrzi a műveleteket.
  • Nincsenek kimenő paraméterek: Paraméterek ConditionalValue<T> helyett egy bool és egy értéket ad vissza. ConditionalValue<T> olyan, mint Nullable<T> , de nem követeli meg, hogy T legyen a szerkezet.
  • Tranzakciók: Tranzakcióobjektum használatával lehetővé teszi a felhasználó számára a műveletek csoportosítását egy tranzakció több megbízható gyűjteményén.

A Microsoft.ServiceFabric.Data.Collections jelenleg három gyűjteményt tartalmaz:

  • Megbízható szótár: Kulcs/érték párok replikált, tranzakciós és aszinkron gyűjteményét jelöli. A ConcurrentDictionary-hoz hasonlóan a kulcs és az érték is bármilyen típusú lehet.
  • Megbízható üzenetsor: Replikált, tranzakciós és aszinkron szigorú, első-kimenő (FIFO) üzenetsort jelöl. A ConcurrentQueue-hoz hasonlóan az érték bármilyen típusú lehet.
  • Megbízható egyidejű üzenetsor: A replikált, tranzakciós és aszinkron legjobb munkamennyiség-rendezési várólistát jelöli a magas átviteli sebesség érdekében. A ConcurrentQueue-hoz hasonlóan az érték bármilyen típusú lehet.

További lépések