Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Kolekcje Reliable Collections umożliwiają pisanie aplikacji w chmurze o wysokiej dostępności, skalowalności i małych opóźnieniach, tak jakby tworzysz pojedyncze aplikacje komputerowe. Klasy w przestrzeni nazw Microsoft.ServiceFabric.Data.Collections udostępniają zestaw kolekcji, które automatycznie zapewniają wysoką dostępność stanu. Deweloperzy powinni programować tylko z użyciem interfejsów API Reliable Collections, umożliwiając tym kolekcjom zarządzanie replikowanym i lokalnym stanem.
Kluczową różnicą między kolekcjami Reliable Collections i innymi technologiami wysokiej dostępności (takimi jak Redis, Azure Table Service i Azure Queue Service) jest to, że stan jest przechowywany lokalnie w wystąpieniu usługi, a jednocześnie zapewnia wysoką dostępność. Oznacza to, że:
- Wszystkie operacje odczytu są lokalne, co powoduje małe opóźnienia i odczyty o wysokiej przepływności.
- Wszystkie operacje zapisu powodują minimalną liczbę operacji we/wy sieci, co powoduje małe opóźnienia i zapisy o wysokiej przepływności.
Klasy Reliable Collections można traktować jako naturalną ewolucję klas System.Collections : nowy zestaw kolekcji przeznaczonych dla aplikacji w chmurze i wielu komputerach bez zwiększania złożoności dla dewelopera. W związku z tym kolekcje Reliable Collections to:
- Replikowane: zmiany stanu są replikowane w celu zapewnienia wysokiej dostępności.
- Asynchroniczne: interfejsy API są asynchroniczne, aby upewnić się, że wątki nie są blokowane podczas naliczania operacji we/wy.
- Transakcyjność: Interfejsy API wykorzystują abstrakcję transakcji, dzięki czemu można łatwo zarządzać wieloma kolekcjami Reliable Collections w ramach usługi.
- Utrwalone lub nietrwałe: dane mogą być utrwalane na dysku w celu zapewnienia trwałości w przypadku awarii na dużą skalę (na przykład awarii zasilania centrum danych). Niektóre kolekcje Reliable Collections obsługują również tryb nietrwały (z zastrzeżeniami), w którym wszystkie dane są przechowywane w pamięci, takie jak replikowana pamięć podręczna w pamięci.
Niezawodne kolekcje zapewniają wbudowaną wysoką spójność, aby ułatwić bezpośrednie rozumienie stanu aplikacji. Silna spójność jest osiągana przez zapewnienie, że zatwierdzenia transakcji są finalizowane dopiero po zarejestrowaniu całej transakcji w kworum większości replik, w tym podstawowej repliki. Aby osiągnąć słabszą spójność, aplikacje mogą potwierdzić powrót do klienta/obiektu żądającego przed zwróceniem asynchronicznego zatwierdzenia.
API Reliable Collections to rozwinięcie współbieżnych API kolekcji (znajdujących się w przestrzeni nazw System.Collections.Concurrent):
- Asynchroniczne: zwraca zadanie, ponieważ, w odróżnieniu od współbieżnych kolekcji, operacje są replikowane i utrwalane.
- Brak parametrów wychodzących: wykorzystuje
ConditionalValue<T>
do zwróceniabool
i wartości zamiast parametrów wychodzących.ConditionalValue<T>
jest jakNullable<T>
, ale nie wymaga, żeby T było strukturą. - Transakcje: używa obiektu transakcji, aby umożliwić użytkownikowi grupowanie operacji na wielu niezawodnych kolekcjach w ramach tej samej transakcji.
Obecnie microsoft.ServiceFabric.Data.Collections zawiera trzy kolekcje:
- Reliable Dictionary: reprezentuje replikowany, transakcyjny i asynchroniczny zbiór par klucz/wartość. Podobnie jak ConcurrentDictionary, zarówno klucz, jak i wartość mogą być dowolnego typu.
- Niezawodna kolejka: reprezentuje zreplikowany, transakcyjny i asynchroniczny kolejkę typu pierwszy na początku (FIFO). Podobnie jak w przypadku funkcji ConcurrentQueue, wartość może być dowolnego typu.
- Niezawodna kolejka współbieżna: reprezentuje replikowaną, transakcyjną i asynchroniczną kolejkę porządkowania w celu zapewnienia wysokiej przepływności. Podobnie jak ConcurrentQueue, wartość może być dowolnego typu.
Następne kroki
- Wskazówki i zalecenia dotyczące niezawodnej kolekcji
- Praca z kolekcjami Reliable
- Transakcje i blokady
- Zarządzanie danymi
- Inni