Zestaw SDK procesora zestawienia zmian platformy .NET: pobieranie i informacje o wersji (starsza wersja)

DOTYCZY: NoSQL

Łącza
Zestaw SDK do pobrania NuGet
Dokumentacja interfejsu API Dokumentacja referencyjna interfejsu API biblioteki procesora zestawienia zmian
Rozpocznij Wprowadzenie do zestawu .NET SDK procesora zestawienia zmian
Bieżąca obsługiwana platforma Microsoft .NET Framework 4.5
Microsoft .NET Core

Uwaga

Jeśli używasz procesora zestawienia zmian, zapoznaj się z najnowszą wersją 3.x zestawu .NET SDK, która zawiera zestawienie zmian wbudowane w zestaw SDK.

Informacje o wersji

Kompilacje w wersji 2

2.5.0

  • Dodano nowy konstruktor dla Microsoft.Azure.Documents.ChangeFeedProcessor.Logging.TraceLogProvider klasy, która przyjmuje wystąpienie System.Diagnostics.TraceSource klasy jako argument. Dzięki temu element TraceLogProvider, który jest używany do śledzenia platformy .net, jest tworzony programowo na podstawie wystąpienia niestandardowego TraceSource zainicjowanego w kodzie źródłowym. Przed tą zmianą można było skonfigurować śledzenie platformy .net tylko przy użyciu pliku App.config.

2.4.0

  • Dodano obsługę kolekcji dzierżaw, które można partycjonować przy użyciu klucza partycji zdefiniowanego jako /partitionKey. Przed tą zmianą klucz partycji kolekcji dzierżawy musi być zdefiniowany jako /id.
  • Ta wersja umożliwia używanie kolekcji dzierżaw z interfejsem API dla języka Gremlin, ponieważ kolekcje języka Gremlin nie mogą mieć klucza partycji zdefiniowanego jako /id.

2.3.2

  • Dodano zgodność magazynu dzierżawy z zestawem SDK w wersji 3, który umożliwia stosowanie aktywnych ścieżek migracji. Aplikację można migrować do zestawu SDK w wersji 3 i przeprowadzić migrację z powrotem do biblioteki procesora zestawienia zmian bez utraty stanu.

2.3.1

  • Poprawiono przypadek, gdy przyczyna zamknięcia FeedProcessing.ChangeFeedObserverCloseReason.Unknown została wysłana do elementu FeedProcessing.IChangeFeedObserver.CloseAsync, jeśli nie można odnaleźć partycji lub jeśli replika docelowa nie jest aktualna w sesji odczytu. W tych przypadkach teraz są używane przyczyny zamknięcia FeedProcessing.ChangeFeedObserverCloseReason.ResourceGone i FeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable.
  • Dodano nową przyczynę zamknięcia FeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable, która jest wysyłana w celu zamknięcia obserwatora zestawienia zmian, gdy replika docelowa nie jest aktualna w ramach sesji odczytu.

2.3.0

  • Dodano nową metodę ChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory i odpowiedni interfejs publiczny ICheckpointPartitionProcessorFactory. Umożliwia to używanie przez implementację interfejsu IPartitionProcessor wbudowanego mechanizmu tworzenia punktów kontrolnych. Nowa fabryka jest podobna do istniejącej fabryki IPartitionProcessorFactory z tą różnicą, że jej metoda Create również pobiera parametr ILeaseCheckpointer.
  • Tylko jedna z dwóch metod, ChangeFeedProcessorBuilder.WithPartitionProcessorFactory lub ChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory, może być użyta dla tego samego wystąpienia ChangeFeedProcessorBuilder.

2.2.8

  • Ulepszenia stabilności i diagnostyki:
    • Dodano obsługę wykrywania długiego czasu odczytywania zestawienia zmian. Jeśli wartość określona ChangeFeedProcessorOptions.ChangeFeedTimeout przez właściwość trwa dłużej, należy wykonać następujące czynności:
      • Operacja odczytu zestawienia zmian na partycji, której dotyczy problem, została przerwana.
      • Wystąpienie procesora zestawienia zmian usuwa własność dzierżawy, której dotyczy problem. Usunięta dzierżawa zostanie wybrana podczas kolejnego kroku pozyskiwania dzierżawy, który zostanie wykonany przez to samo lub inne wystąpienie procesora zestawienia zmian. W ten sposób odczytywanie zestawienia zmian zacznie się od początku.
      • Problem jest zgłaszany w monitorze kondycji. Domyślny monitor kondycji wysyła wszystkie zgłoszone problemy do dziennika śledzenia.
    • Dodano nową właściwość publiczną: ChangeFeedProcessorOptions.ChangeFeedTimeout. Wartość domyślna tej właściwości to 10 minut.
    • Dodano nową publiczną wartość wyliczeniową: Monitoring.MonitoredOperation.ReadChangeFeed. Gdy wartość HealthMonitoringRecord.Operation jest ustawiona na Monitoring.MonitoredOperation.ReadChangeFeed, wskazuje, że problem z kondycją dotyczy odczytywania zestawienia zmian.

2.2.7

  • Ulepszona strategia równoważenia obciążenia dla scenariusza, gdy pobieranie wszystkich dzierżaw trwa dłużej niż interwał wygaśnięcia dzierżawy, na przykład z powodu problemów z siecią:
    • W tym scenariuszu algorytm równoważenia obciążenia fałszywie traktował dzierżawy jako wygasłe, co powodowało kradzież dzierżaw od aktywnych właścicieli. Może to spowodować niepotrzebne ponowne zrównoważenie wielu dzierżaw.
    • Ten problem został rozwiązany w tej wersji przez uniknięcie ponowienia próby przy konflikcie podczas uzyskiwania wygasłej dzierżawy, której właściciel się nie zmienił, i odroczenia pobierania wygasłej dzierżawy do następnej iteracji równoważenia obciążenia.

2.2.6

  • Ulepszona obsługa wyjątków obserwatorów.
  • Bogatsze informacje o błędach obserwatora:
    • Gdy obserwator zostanie zamknięty z powodu wyjątku zgłoszonego przez element ProcessChangesAsync obserwatora, element CloseAsync otrzyma teraz parametr przyczyny ustawiony na ChangeFeedObserverCloseReason.ObserverError.
    • Dodano ślady do identyfikowania błędów w kodzie użytkownika w obserwatorze.

2.2.5

  • Dodano obsługę podziału w kolekcjach, które używają przepływności udostępnionej bazy danych.
    • W tej wersji rozwiązano problem, który może wystąpić podczas podziału kolekcji używających przepływności udostępnionej bazy danych, gdy wynik zostanie podzielony na ponowne równoważenie partycji z tylko jednym utworzonym zakresem kluczy partycji podrzędnej, a nie dwoma. W takim przypadku procesor zestawienia zmian może zatrzymać się na usuwaniu dzierżawy dla starego zakresu kluczy partycji i nie tworzyć nowych dzierżaw. Problem został rozwiązany w tej wersji.

2.2.4

  • Dodano nową właściwość ChangeFeedProcessorOptions.StartContinuation, aby można było obsługiwać uruchamianie zestawienia zmian z tokenu kontynuacji żądania. Ta wartość jest używana tylko wtedy, gdy kolekcja dzierżaw jest pusta lub dzierżawa nie ma ustawionego elementu ContinuationToken. W przypadku dzierżaw w kolekcji, które mają ustawiony element ContinuationToken, używany jest element ContinuationToken, a właściwość ChangeFeedProcessorOptions.StartContinuation jest ignorowana.

2.2.3

  • Dodano obsługę używania magazynu niestandardowego do utrwalania tokenów kontynuacji na partycję.
    • Na przykład niestandardowym magazynem dzierżawy może być kolekcja dzierżaw usługi Azure Cosmos DB podzielona na partycje w dowolny sposób.
    • Niestandardowe magazyny dzierżaw mogą korzystać z nowego punktu rozszerzenia ChangeFeedProcessorBuilder.WithLeaseStoreManager(ILeaseStoreManager) i interfejsu publicznego ILeaseStoreManager.
    • Zrefaktoryzowano interfejs ILeaseManager w wielu interfejsach roli.
  • Drobna zmiana powodująca niezgodność: usunięto punkt rozszerzenia ChangeFeedProcessorBuilder.WithLeaseManager(ILeaseManager), zamiast tego należy użyć elementu ChangeFeedProcessorBuilder.WithLeaseStoreManager(ILeaseStoreManager).

2.2.2

  • W tej wersji rozwiązano problem występujący podczas przetwarzania podziału w monitorowanej kolekcji i używania kolekcji dzierżaw z podziałem na partycje. Podczas przetwarzania dzierżawy dla podzielonej partycji nie można usunąć dzierżawy odpowiadającej tej partycji. Problem został rozwiązany w tej wersji.

2.2.1

  • Poprawiono obliczanie narzędzia do szacowania w przypadku kont z wieloma regionami zapisu i nowym formatem tokenu sesji.

2.2.0

  • Dodano obsługę partycjonowanych kolekcji dzierżaw. Klucz partycji musi być zdefiniowany jako /id.
  • Drobna zmiana powodująca niezgodność: metody interfejsu IChangeFeedDocumentClient i klasy ChangeFeedDocumentClient zostały zmienione, tak aby zawierały parametry RequestOptions i CancellationToken. IChangeFeedDocumentClient to zaawansowany punkt rozszerzalności, który umożliwia zapewnienie niestandardowej implementacji klienta dokumentów do użycia z procesorem zestawienia zmian, na przykład ozdobić element DocumentClient i przechwycić wszystkie wywołania w celu wykonania dodatkowego śledzenia, obsługi błędów itp. W przypadku tej aktualizacji należy zmienić kod implementujący element IChangeFeedDocumentClient, aby uwzględnić nowe parametry w implementacji.
  • Drobne ulepszenia diagnostyki.

2.1.0

  • Dodano nowy interfejs API Task<IReadOnlyList<RemainingPartitionWork>> IRemainingWorkEstimator.GetEstimatedRemainingWorkPerPartitionAsync(). Może on służyć do uzyskania szacowanej pracy dla każdej partycji.
  • Obsługuje zestaw Microsoft.Azure.DocumentDB SDK 2.0. Wymaga rozwiązania Microsoft.Azure.DocumentDB 2.0 lub nowszego.

2.0.6

  • Dodano właściwość publiczną ChangeFeedEventHost.HostName w celu zapewnienia zgodności z wersją 1.

2.0.5

  • Naprawiono sytuację wyścigu, która występuje podczas dzielenia partycji. Sytuacja wyścigu może prowadzić do uzyskania dzierżawy i jej natychmiastowej utraty podczas dzielenia partycji, co powoduje rywalizację. Problem z sytuacją wyścigu został rozwiązywany w tej wersji.

2.0.4

  • Zestaw SDK ogólnej dostępności

2.0.3 — wersja wstępna

  • Rozwiązano następujące problemy:

    • Po podzieleniu partycji może istnieć zduplikowane przetwarzanie dokumentów zmodyfikowanych przed podziałem.
    • Interfejs API GetEstimatedRemainingWork zwrócił wartość 0, gdy w kolekcji dzierżaw nie ma żadnych dzierżaw.
  • Następujące wyjątki są udostępniane publicznie. Rozszerzenia implementujące element IPartitionProcessor mogą zgłosić te wyjątki.

    • Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.LeaseLostException.
    • Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.PartitionException.
    • Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.PartitionNotFoundException.
    • Microsoft.Azure.Documents.ChangeFeedProcessor.Exceptions.PartitionSplitException.

2.0.2 — wersja wstępna

  • Drobne zmiany interfejsu API:
    • Usunięto element ChangeFeedProcessorOptions.IsAutoCheckpointEnabled, który został oznaczony jako przestarzały.

2.0.1 — wersja wstępna

  • Stabilności:
    • Lepsza obsługa inicjowania magazynu dzierżawy. Gdy magazyn dzierżawy jest pusty, może go zainicjować tylko jedno wystąpienie procesora, a pozostałe będą czekać.
    • Stabilniejsze/wydajniejsze odnowienie/zwolnienie dzierżawy. Odnawianie i zwalnianie dzierżawy na jednej partycji jest niezależne od odnawiania innych. W wersji 1, która została wykonana sekwencyjnie dla wszystkich partycji.
  • Nowy interfejs API w wersji 2:
    • Wzorzec konstruktora dla elastycznej konstrukcji procesora: klasa ChangeFeedProcessorBuilder.
      • Może przyjmować dowolną kombinację parametrów.
      • Może przyjmować wystąpienie elementu DocumentClient do monitorowania i/lub kolekcji dzierżaw (niedostępne w wersji 1).
    • Element IChangeFeedObserver.ProcessChangesAsync teraz przyjmuje element CancellationToken.
    • IRemainingWorkEstimator — narzędzie do szacowania pozostałej części pracy może być używane niezależnie od procesora.
    • Nowe punkty rozszerzalności:
      • IPartitionLoadBalancingStrategy — w przypadku niestandardowego równoważenia obciążenia partycji między wystąpieniami procesora.
      • ILease, ILeaseManager — do niestandardowego zarządzania dzierżawą.
      • IPartitionProcessor — w przypadku zmian przetwarzania niestandardowego na partycji.
  • Rejestrowanie — używa biblioteki LibLog.
  • 100% zgodności wstecznej z interfejsem API w wersji1.
  • Nowa baza kodu.
  • Zgodność z zestawem SQL .NET SDK w wersji 1.21.1 lub nowszej.

Kompilacje w wersji 1

1.3.3

  • Dodano więcej rejestrowania.
  • Naprawiono wyciek elementu DocumentClient podczas wielokrotnego wywoływania szacowania oczekujących zadań.

1.3.2

  • Poprawki w zakresie szacowania oczekujących zadań.

1.3.1

  • Ulepszenia stabilności.
    • Poprawka dotycząca problemu z obsługą anulowanych zadań, co może prowadzić do zatrzymania obserwatorów na niektórych partycjach.
  • Obsługa ręcznego tworzenia punktów kontrolnych.
  • Zgodność z zestawem SQL .NET SDK w wersji 1.21 lub nowszej.

1.2.0

  • Dodano obsługę platformy .NET Standard 2.0. Pakiet obsługuje teraz krótkie nazwy platform netstandard2.0 i net451.
  • Zgodność z zestawem SQL .NET SDK w wersji 1.17.0 lub nowszej.
  • Zgodność z zestawem SQL .NET Core SDK w wersji 1.5.1 lub nowszej.

1.1.1

  • Rozwiązano problem z obliczeniem szacowanej liczby pozostałych zadań, gdy zestawienie zmian było puste lub nie było oczekujących zadań.
  • Zgodność z zestawem SQL .NET SDK w wersji 1.13.2 lub nowszej.

1.1.0

  • Dodano metodę w celu uzyskania szacowanej pozostałej liczby zadań, które mają zostać przetworzone w zestawieniu zmian.
  • Zgodność z zestawem SQL .NET SDK w wersji 1.13.2 lub nowszej.

1.0.0

Daty wydania i wycofania

Firma Microsoft udostępni powiadomienie co najmniej 12 miesięcy przed wycofaniem zestawu SDK w celu zapewnienia sprawnego przejścia do nowszej/obsługiwanej wersji. Nowe funkcje i optymalizacje są dodawane tylko do bieżącego zestawu SDK, dlatego zaleca się, aby zawsze uaktualniać do najnowszej wersji zestawu SDK tak szybko, jak to możliwe.

Ostrzeżenie

Po 31 sierpnia 2022 r. usługa Azure Cosmos DB nie będzie już wprowadzać poprawek błędów, dodawać nowych funkcji i zapewniać obsługę wersji 1.x zestawu SDK platformy .NET lub .NET Core usługi Azure Cosmos DB dla interfejsu API for NoSQL. Jeśli nie chcesz przeprowadzać uaktualnienia, żądania wysyłane z wersji 1.x zestawu SDK będą nadal obsługiwane przez usługę Azure Cosmos DB.


Wersja Data wydania Data wycofania
2.5.0 15 maja 2023 r. ---
2.4.0 6 maja 2021 r. ---
2.3.2 11 sierpnia 2020 r. ---
2.3.1 30 lipca 2020 r. ---
2.3.0 2 kwietnia 2020 r. ---
2.2.8 28 października 2019 r. ---
2.2.7 14 maja 2019 r. ---
2.2.6 29 stycznia 2019 r. ---
2.2.5 13 grudnia 2018 r. ---
2.2.4 29 listopada 2018 r. ---
2.2.3 19 listopada 2018 r. ---
2.2.2 31 października 2018 r. ---
2.2.1 24 października 2018 r. ---
1.3.3 8 maja 2018 r. ---
1.3.2 18 kwietnia 2018 r. ---
1.3.1 13 marca 2018 r. ---
1.2.0 31 października 2017 r. ---
1.1.1 29 sierpnia 2017 r. ---
1.1.0 13 sierpnia 2017 r. ---
1.0.0 7 lipca 2017 r. ---

Często zadawane pytania

W jaki sposób będę otrzymywać powiadomienia o wycofywanym zestawie SDK?

Firma Microsoft wyśle powiadomienie na 12 miesięcy przed zakończeniem obsługi wycofywanego zestawu SDK, aby ułatwić bezproblemowe przejście do obsługiwanego zestawu SDK. Powiadomimy Cię za pośrednictwem różnych kanałów komunikacyjnych: witryny Azure Portal, aktualizacji platformy Azure i komunikacji bezpośredniej z przypisanymi administratorami usług.

Czy w ciągu tego 12-miesięcznego okresu mogę tworzyć aplikacje przy użyciu zestawu SDK Azure Cosmos DB?

Tak, w ciągu tego 12-miesięcznego okresu będziesz mieć możliwość tworzenia, wdrażania i modyfikowania aplikacji przy użyciu wycofywanego zestawu SDK Azure Cosmos DB. Zalecamy migrację do nowej obsługiwanej wersji zestawu SDK Azure Cosmos DB w ciągu tego 12-miesięcznego okresu zgodnie z potrzebami.

Co się stanie z aplikacjami korzystającymi z nieobsługiwanego zestawu SDK Azure Cosmos DB po jego wycofaniu?

Po dacie wycofania zespół Azure Cosmos DB nie będzie już opracowywał poprawek błędów, dodawał nowych funkcji ani zapewniał pomocy technicznej dla wycofanych wersji zestawu SDK. Jeśli nie chcesz przeprowadzać uaktualnienia, żądania wysyłane z wycofanej wersji zestawu SDK będą nadal obsługiwane przez usługę Azure Cosmos DB.

Które wersje zestawu SDK będą mieć najnowsze funkcje i aktualizacje?

Nowe funkcje i aktualizacje będą dodawane tylko do najnowszej wersji pomocniczej najnowszej obsługiwanej wersji zestawu SDK. Zalecamy używanie najnowszej wersji, aby korzystać z nowych funkcji, ulepszeń wydajności i poprawek błędów. Jeśli używasz starej, niewycofanej wersji zestawu SDK, żądania wysyłane do usługi Azure Cosmos DB będą nadal działać, ale nie będziesz mieć dostępu do żadnych nowych funkcji.

Co zrobić, jeśli nie mogę zaktualizować aplikacji przed datą progową?

Zalecamy przeprowadzenie uaktualnienia do najnowszej wersji zestawu SDK tak szybko, jak to możliwe. Gdy zestaw SDK zostanie oznaczony do wycofania, będziesz mieć 12 miesięcy na zaktualizowanie swojej aplikacji. Jeśli nie uda Ci się wykonać aktualizacji przed datą wycofania, żądania wysyłane z wycofanych wersji zestawu SDK nadal będą obsługiwane przez usługę Azure Cosmos DB, a zatem Twoje uruchomione aplikacje będą nadal działać. Jednak zespół Azure Cosmos DB nie będzie już opracowywał poprawek błędów, dodawał nowych funkcji ani zapewniał pomocy technicznej dla wycofanych wersji zestawu SDK.

Jeśli masz plan pomocy technicznej i potrzebujesz pomocy technicznej, skontaktuj się z nami, tworząc bilet pomocy technicznej.

Jak mogę zażądać dodania funkcji do zestawu SDK lub łącznika?

Nowe funkcje nie zawsze są natychmiast dodawane do każdego zestawu SDK lub łącznika. Jeśli funkcja nie jest obsługiwana, którą chcesz dodać, dodaj opinię do naszego forum społeczności.

Zobacz też

Aby dowiedzieć się więcej na temat usługi Azure Cosmos DB, zobacz stronę usługi Microsoft Azure Cosmos DB .