.NET Change Feed Processor SDK: Download- en releaseopmerkingen (verouderd)

VAN TOEPASSING OP: NoSQL

Koppelingen
SDK downloaden NuGet
API-documentatie Documentatie voor de API-verwijzing van de wijzigingenfeedverwerker-bibliotheek
Aan de slag Aan de slag met de .NET-SDK van de wijzigingenfeedverwerker
Huidig ondersteund framework Microsoft .NET Framework 4.5
Microsoft .NET Core

Notitie

Als u een wijzigingenfeedprocessor gebruikt, raadpleegt u de meest recente versie 3.x van de .NET-SDK, waarvan de wijzigingenfeed in de SDK is ingebouwd.

Opmerkingen bij de release

v2-builds

2.5.0

  • Er is een nieuwe constructor toegevoegd voor de Microsoft.Azure.Documents.ChangeFeedProcessor.Logging.TraceLogProvider klasse die een exemplaar van de System.Diagnostics.TraceSource klasse als argument gebruikt. Hierdoor kan de TraceLogProvider, die wordt gebruikt voor .net-tracering, programmatisch worden gemaakt op basis van een aangepast exemplaar TraceSource dat is geïnitialiseerd in broncode. Vóór deze wijziging was het alleen mogelijk om .net-tracering te configureren met behulp van het App.config-bestand.

2.4.0

  • Er is ondersteuning toegevoegd voor leaseverzamelingen die kunnen worden gepartitioneerd met een partitiesleutel die is gedefinieerd als /partitionKey. Vóór deze wijziging moet de partitiesleutel van de leaseverzameling worden gedefinieerd als /id.
  • Met deze release kunt u leaseverzamelingen gebruiken met API voor Gremlin, omdat Gremlin-verzamelingen geen partitiesleutel kunnen hebben gedefinieerd als /id.

2.3.2

  • Er is lease-archiefcompatibiliteit toegevoegd met [V3 SDK die dynamische migratiepaden mogelijk maakt. Een toepassing kan worden gemigreerd naar V3 SDK en terug worden gemigreerd naar de wijzigingenfeedverwerker-bibliotheek zonder dat er een status verloren gaat.

2.3.1

  • Er is een case gecorrigeerd waarbij sluitingsreden FeedProcessing.ChangeFeedObserverCloseReason.Unknown werd verzonden naar FeedProcessing.IChangeFeedObserver.CloseAsync als de partitie niet kan worden gevonden of als de doelreplica niet up-to-date is met de leessessie. In deze cases worden nu sluitingsredenen FeedProcessing.ChangeFeedObserverCloseReason.ResourceGone en FeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable gebruikt.
  • Er is een nieuwe sluitingsreden FeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable toegevoegd die wordt verzonden om de waarnemer van de wijzigingsfeed te sluiten wanneer de doelreplica niet up-to-date is met de leessessie.

2.3.0

  • Er is een nieuwe methode ChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory toegevoegd en een bijbehorende openbare interface ICheckpointPartitionProcessorFactory. Hiermee kan een implementatie van de interface IPartitionProcessor het ingebouwde mechanisme voor controlepunten gebruiken. De nieuwe factory is vergelijkbaar met de bestaande IPartitionProcessorFactory, behalve dat de methode Create ook de parameter ILeaseCheckpointer neemt.
  • Slechts een van de twee methoden, ChangeFeedProcessorBuilder.WithPartitionProcessorFactory of ChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory, kan worden gebruikt voor hetzelfde ChangeFeedProcessorBuilder-exemplaar.

2.2.8

  • Verbeteringen in stabiliteit en diagnosebaarheid:
    • Er is ondersteuning toegevoegd te detecteren als het lezen van de wijzigingenfeed te lang duurt. Wanneer het langer duurt dan de waarde die is opgegeven door de ChangeFeedProcessorOptions.ChangeFeedTimeout eigenschap, worden de volgende stappen uitgevoerd:
      • De bewerking voor het lezen van de wijzigingenfeed op de problematische partitie wordt afgebroken.
      • Het exemplaar van de wijzigingenfeedverwerker beëindigt het eigendom van de problematische lease. De verwijderde lease wordt opgehaald tijdens de volgende stap voor het verkrijgen van leases, die wordt uitgevoerd door hetzelfde of een ander exemplaar van de wijzigingenfeedverwerker. Op deze manier wordt het lezen van de wijzigingenfeed opnieuw gestart.
      • Er wordt een probleem gerapporteerd aan de statusmonitor. De standaard statusmonitor verzendt alle gerapporteerde problemen naar het traceringslogboek.
    • Er is een nieuwe openbare eigenschap toegevoegd: ChangeFeedProcessorOptions.ChangeFeedTimeout. De standaardwaarde van deze eigenschap is 10 minuten.
    • Er is een nieuwe openbare opsommingswaarde toegevoegd: Monitoring.MonitoredOperation.ReadChangeFeed. Wanneer de waarde van HealthMonitoringRecord.Operation is ingesteld op Monitoring.MonitoredOperation.ReadChangeFeed, wordt hiermee aangegeven dat het statusprobleem betrekking heeft op het lezen van de wijzigingenfeed.

2.2.7

  • Verbeterde taakverdelingsstrategie voor scenario's bij het verkrijgen van alle leases duurt langer dan het verloopinterval van de lease, bijvoorbeeld vanwege netwerkproblemen:
    • In dit scenario wordt het belastingsverdelingsalgoritme gebruikt om leases onterecht als verlopen te beschouwen, waardoor leases van actieve eigenaars worden gestolen. Dit kan onnodig herverdeling van veel leases tot gevolg hebben.
    • Dit probleem wordt opgelost in deze release door te voorkomen dat er bij een conflict een nieuwe poging wordt gedaan tijdens het ophalen van de verlopen lease die de eigenaar niet heeft gewijzigd en het ophalen van de verlopen lease uit te stellen naar de volgende iteratie van de belastingsverdeling.

2.2.6

  • Verbeterde verwerking van uitzonderingen voor waarnemers.
  • Uitgebreidere informatie over waarnemersfouten:
    • Wanneer een waarnemer wordt gesloten vanwege een uitzondering die is opgetreden door de ProcessChangesAsync van de waarnemer, ontvangt de CloseAsync nu de reden dat de parameter is ingesteld op ChangeFeedObserverCloseReason.ObserverError.
    • Er zijn traceringen toegevoegd om fouten binnen de gebruikerscode in een waarnemer te identificeren.

2.2.5

  • Er is ondersteuning toegevoegd voor het verwerken van splitsingen in verzamelingen die gebruikmaken van de doorvoer van een gedeelde database.
    • Deze release corrigeert een probleem dat zich kan voordoen tijdens het splitsen in verzamelingen met behulp van de doorvoer van een gedeelde database, wanneer het resultaat wordt gesplitst in een partitie waarbij wordt herverdeeld met slechts één aangemaakt sleutelbereik van de onderliggende partitie, in plaats van twee. Als dit gebeurt, kan het zijn dat de wijzigingenfeedverwerker vastloopt tijdens het verwijderen van de lease voor het oude partitiesleutelbereik en geen nieuwe leases maakt. Het probleem is opgelost in deze release.

2.2.4

  • De nieuwe eigenschap ChangeFeedProcessorOptions.StartContinuation is toegevoegd ter ondersteuning van het starten van een wijzigingenfeed vanuit de aanvraag van een voortzettingstoken. Dit wordt alleen gebruikt wanneer de leaseverzameling leeg is of als er voor een lease geen voortzettingstoken is ingesteld. Voor leases in een leaseverzameling waarvoor een voortzettingstoken is ingesteld, wordt het voortzettingstoken gebruikt en wordt ChangeFeedProcessorOptions.StartContinuation genegeerd.

2.2.3

  • Er is ondersteuning toegevoegd voor het gebruik van een aangepast archief om voortzettingstokens per partitie te behouden.
    • Zo kan een aangepast lease-archief bijvoorbeeld een Azure Cosmos DB-lease-verzameling zijn die op een aangepaste manier is gepartitioneerd.
    • Aangepaste lease-archieven kunnen het nieuwe uitbreidbaarheidspunt ChangeFeedProcessorBuilder.WithLeaseStoreManager (ILeaseStoreManager) en de openbare interface ILeaseStoreManager gebruiken.
    • De ILeaseManager-interface is geherstructureerd in interfaces met meerdere rollen.
  • Kleine wijziging die fouten veroorzaakt: uitbreidbaarheidspunt ChangeFeedProcessorBuilder.WithLeaseManager (ILeaseManager) is verwijderd, gebruik in plaats daarvan ChangeFeedProcessorBuilder.WithLeaseStoreManager (ILeaseStoreManager).

2.2.2

  • Deze release corrigeert een probleem dat zich voordoet tijdens het verwerken van een splitsing in een bewaakte verzameling en het gebruik van een gepartitioneerde lease-verzameling. Bij het verwerken van een lease voor een gesplitste partitie, mag de lease die overeenkomt met die partitie, niet worden verwijderd. Het probleem is opgelost in deze release.

2.2.1

  • Schattingsberekening hersteld voor accounts met meerdere schrijfregio's en een nieuwe sessie-tokenindeling.

2.2.0

  • Er is ondersteuning toegevoegd voor gepartitioneerde lease-verzamelingen. De partitiesleutel moet worden gedefinieerd als /id.
  • Kleine wijziging die fouten veroorzaakt: de methoden van de IChangeFeedDocumentClient-interface en de ChangeFeedDocumentClient-klasse zijn gewijzigd zodat deze de RequestOptions- en CancellationToken-parameters bevatten. IChangeFeedDocumentClient is een geavanceerd uitbreidbaarheidspunt waarmee u aangepaste implementatie van de documentclient kunt bieden voor gebruik met wijzigingenfeedprocessor, bijvoorbeeld DocumentClient versieren en alle aanroepen ernaar onderscheppen om extra tracering, foutafhandeling, enzovoort uit te voeren. Met deze update moet de code die IChangeFeedDocumentClient implementeert, worden gewijzigd om nieuwe parameters in de implementatie op te nemen.
  • Kleine diagnostische verbeteringen.

2.1.0

  • Er is een nieuwe API toegevoegd, taak<IReadOnlyList<RemainingPartitionWork>> IRemainingWorkEstimator. GetEstimatedRemainingWorkPerPartitionAsync (). Deze kan worden gebruikt om de geschatte hoeveelheid werk voor elke partitie te verkrijgen.
  • Ondersteunt Microsoft.Azure.DocumentDB SDK 2.0. Vereist Microsoft.Azure.DocumentDB 2.0 of hoger.

2.0.6

  • De openbare eigenschap ChangeFeedEventHost.HostName is toegevoegd voor compatibiliteit met v1.

2.0.5

  • Er is een racevoorwaarde opgelost die plaatsvindt tijdens het splitsen van de partitie. De racevoorwaarde kan leiden tot het verkrijgen van een lease en deze onmiddellijk verliezen tijdens het splitsen van partities en leidt tot conflicten. Het probleem met de racevoorwaarde is opgelost met deze release.

2.0.4

  • GA SDK

2.0.3-prerelease

  • De volgende problemen zijn verholpen:

    • Wanneer er een partitie wordt gesplitst, kan er dubbele verwerking worden uitgevoerd van documenten die zijn gewijzigd vóór de splitsing.
    • De GetEstimatedRemainingWork-API heeft 0 geretourneerd wanneer er geen leases in de lease-verzameling aanwezig waren.
  • De volgende uitzonderingen worden openbaar gemaakt. Uitbreidingen die IPartitionProcessor implementeren, kunnen deze uitzonderingen genereren.

    • 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-prerelease

  • Kleine API-wijzigingen:
    • ChangeFeedProcessorOptions.IsAutoCheckpointEnabled dat als verouderd is gemarkeerd, is verwijderd.

2.0.1-prerelease

  • Stabiliteitsverbeteringen:
    • Betere verwerking van de initialisatie van het lease-archief. Wanneer het lease-archief leeg is, kan slechts één exemplaar van de processor deze initialiseren, de anderen wachten.
    • Stabielere/efficiëntere leasevernieuwing/-release. Het vernieuwen en vrijgeven van een lease met één partitie is onafhankelijk van het vernieuwen van andere. In v1 werd dit voor alle partities opeenvolgend uitgevoerd.
  • Nieuwe v2-API:
    • Opbouwfunctie-patroon voor flexibele constructie van de processor: de ChangeFeedProcessorBuilder-klasse.
      • Kan elke combinatie van parameters hanteren.
      • Kan DocumentClient-exemplaar voor bewaking en/of leaseverzameling hanteren (niet beschikbaar in v1).
    • IChangeFeedObserver.ProcessChangesAsync accepteert nu CancellationToken (voortzettingstoken).
    • IRemainingWorkEstimator - de schatting van het resterende werk kan los van de processor worden gebruikt.
    • Nieuwe uitbreidbaarheidspunten:
      • IPartitionLoadBalancingStrategy - voor aangepaste belastingsverdeling van partities tussen exemplaren van de processor.
      • ILease, ILeaseManager - voor aangepast lease-beheer.
      • IPartitionProcessor - voor aangepaste verwerkingswijzigingen op een partitie.
  • Logboekregistratie - gebruikt LibLog-bibliotheek.
  • 100% compatibel met eerdere versies v1 API.
  • Nieuwe codebasis.
  • Compatibel met SQL .NET SDK versies 1.21.1 en hoger.

v1-builds

1.3.3

  • Meer logboekregistratie toegevoegd.
  • Er is een DocumentClient-lek opgelost tijdens het meerder keren aanroepen van de schatting van het werk in behandeling.

1.3.2

  • Oplossingen voor de schatting van werk in behandeling.

1.3.1

  • Stabiliteitsverbeteringen.
    • Oplossing voor het verwerken van een probleem met geannuleerde taken dat kan leiden tot het stoppen van waarnemers op sommige partities.
  • Ondersteuning voor het handmatig plaatsen van controlepunten.
  • Compatibel met SQL .NET SDK versies 1.21 en hoger.

1.2.0

  • Voegt ondersteuning toe voor .NET Standard 2.0. Het pakket ondersteunt nu netstandard2.0 en net451 framework-monikers.
  • Compatibel met SQL .NET SDK versies 1.17.0 en hoger.
  • Compatibel met SQL .NET SDK versies 1.5.1 en hoger.

1.1.1

  • Hiermee wordt een probleem opgelost met het berekenen van de schatting van de resterende hoeveelheid werk wanneer de wijzigingenfeed leeg was of omdat er geen werk in behandeling was.
  • Compatibel met SQL .NET SDK versies 1.13.2 en hoger.

1.1.0

  • Er is een methode toegevoegd voor het verkrijgen van een schatting van het resterende werk dat moet worden verwerkt in de wijzigingenfeed.
  • Compatibel met SQL .NET SDK versies 1.13.2 en hoger.

1.0.0

  • GA SDK
  • Compatibel met SQL .NET SDK versies 1.14.1 en hoger.

Release- en buitengebruikstellingsdatums

Microsoft zal ten minste 12 maanden vóór de buitengebruikstelling van een SDK een melding doen, om de overgang naar een nieuwere/ondersteunde versie te versoepelen. Nieuwe functies en functionaliteiten en optimaliseringen worden alleen toegevoegd aan de huidige SDK. Het wordt daarom aangeraden altijd zo snel mogelijk een upgrade naar de nieuwste SDK-versie uit te voeren.

Waarschuwing

Na 31 augustus 2022 maakt Azure Cosmos DB geen bugfixes meer, voegt u nieuwe functies toe en biedt u ondersteuning voor versies 1.x van de Azure Cosmos DB .NET- of .NET Core SDK voor API voor NoSQL. Als u liever geen upgrade uitvoert, worden aanvragen die zijn verzonden vanaf versie 1.x van de SDK nog steeds behandeld door de Azure Cosmos DB-service.


Versie Releasedatum Buitengebruikstellingsdatum
2.5.0 15 mei 2023 ---
2.4.0 6 mei 2021 ---
2.3.2 11 augustus 2020 ---
2.3.1 30 juli 2020 ---
2.3.0 2 april 2020 ---
2.2.8 28 oktober 2019 ---
2.2.7 14 mei 2019 ---
2.2.6 29 januari 2019 ---
2.2.5 13 december 2018 ---
2.2.4 29 november 2018 ---
2.2.3 19 november 2018 ---
2.2.2 31 oktober 2018 ---
2.2.1 24 oktober 2018 ---
1.3.3 08 mei 2018 ---
1.3.2 18 april 2018 ---
1.3.1 13 maart 2018 ---
1.2.0 31 oktober 2017 ---
1.1.1 29 augustus 2017 ---
1.1.0 13 augustus 2017 ---
1.0.0 07 juli 2017 ---

Veelgestelde vragen

Hoe word ik op de hoogte gesteld van de buitengebruikstelling van de SDK?

Microsoft zal u 12 maanden vóór het einde van de ondersteuning op de hoogte stellen van de buitengebruikstelling van de SDK om een soepele overgang naar een ondersteunde SDK te vergemakkelijken. We sturen u een melding via verschillende communicatiekanalen: de Azure Portal, Azure-updates en rechtstreekse communicatie met toegewezen servicebeheerders.

Kan ik toepassingen maken met behulp van de Azure Cosmos DB SDK die buiten gebruik gesteld zal worden gedurende de periode van 12 maanden?

Ja, u kunt toepassingen ontwerpen, implementeren en wijzigen met behulp van de Azure Cosmos DB SDK die buiten gebruik gesteld zal worden, gedurende de periode van 12 maanden. Wij raden u aan, indien van toepassing, te migreren naar een nieuwere, ondersteunde versie van de Azure Cosmos DB SDK gedurende de kennisgevingsperiode van 12 maanden.

Wat gebeurt er na de buitengebruikstellingsdatum met de toepassingen die de niet-ondersteunde Azure Cosmos DB SDK gebruiken?

Na de buitengebruikstellingsdatum lost Azure Cosmos DB geen problemen meer op, voegt geen nieuwe functies meer toe en levert geen ondersteuning meer voor de buiten gebruik gestelde SDK-versies. Als u liever geen upgrade uitvoert, worden aanvragen die zijn verzonden vanaf de buiten gebruik gestelde versies van de SDK nog steeds behandeld door de Azure Cosmos DB-service.

Welke SDK-versies hebben de nieuwste functies en updates?

Nieuwe functies en updates worden alleen toegevoegd aan de meest recente secundaire versie van de meest recente ondersteunde primaire SDK-versie. Wij raden aan altijd de nieuwste versie te gebruiken om te profiteren van nieuwe functies, prestatieverbeteringen en oplossingen voor problemen. Als u een oude, niet buiten gebruik gestelde versie van de SDK gebruikt, zullen uw aanvragen voor Azure Cosmos DB nog steeds werken, maar hebt u geen toegang tot nieuwe mogelijkheden.

Wat moet ik doen als ik mijn toepassing niet kan bijwerken vóór een afsluitdatum?

Wij raden u aan zo snel mogelijk een upgrade naar de nieuwste SDK uit te voeren. Nadat een SDK is gelabeld voor buitengebruikstelling, hebt u 12 maanden om de toepassing bij te werken. Als u niet kunt bijwerken voor de buitengebruikstellingsdatum, worden aanvragen die zijn verzonden vanuit de buiten gebruik gestelde versies van de SDK nog steeds behandeld door Azure Cosmos DB, zodat uw actieve toepassingen blijven functioneren. Maar Azure Cosmos DB lost geen problemen meer op, voegt geen nieuwe functies meer toe en levert geen ondersteuning meer voor de buiten gebruik gestelde SDK-versies.

Als u een ondersteuningsplan hebt en technische ondersteuning nodig hebt, neem contact met ons op door een ondersteuningsticket in te vullen.

Hoe kan ik aanvragen dat functies worden toegevoegd aan een SDK of connector?

Nieuwe functies worden niet altijd onmiddellijk toegevoegd aan elke SDK of connector. Als er geen functie wordt ondersteund die u wilt toevoegen, kunt u feedback toevoegen aan ons communityforum.

Zie ook

Zie de servicepagina van Microsoft Azure Cosmos DB voor meer informatie over Azure Cosmos DB .