.NET Change Feed Processor SDK: Ladda ned och viktig information (äldre)
GÄLLER FÖR: NoSQL
Länkar | |
---|---|
SDK-nedladdning | NuGet |
API-dokumentation | API-referensdokumentation om bibliotek för ändringsflödesprocessorn |
Kom igång | Kom igång med SDK för .NET-ändringsflödesprocessorn |
Aktuellt ramverk som stöds | Microsoft .NET Framework 4.5 Microsoft .NET Core |
Kommentar
Om du använder ändringsflödesprocessorn rekommenderar vi version 3.x av .NET SDK, vars SDK har inbyggt ändringsflöde.
Viktig information
v2-versioner
2.5.0
- Ny konstruktor har lagts till för klassen
Microsoft.Azure.Documents.ChangeFeedProcessor.Logging.TraceLogProvider
som tar en instans avSystem.Diagnostics.TraceSource
argumentet som argument. På så sätt kanTraceLogProvider
, som används för .net-spårning, skapas programmatiskt från en anpassadTraceSource
instans som initieras i källkoden. Innan den här ändringen var det bara möjligt att konfigurera .net-spårning med hjälp av App.config-filen.
2.4.0
- Stöd har lagts till för lånesamlingar som kan partitioneras med partitionsnyckeln definierad som /partitionKey. Innan den här ändringen måste partitionsnyckeln för lånesamlingen definieras som /id.
- Den här versionen tillåter användning av lånesamlingar med API för Gremlin, eftersom Gremlin-samlingar inte kan ha partitionsnyckeln definierad som /id.
2.3.2
- Kompatibilitet för lagringsplatser för lån har lagts till i v3 SDK så att migreringsvägar med frekvent åtkomst kan användas. Ett program kan migrera till v3 SDK och migrera tillbaka till biblioteket för ändringsflödesprocessorn utan tillståndsförlust.
2.3.1
- Ett problem har åtgärdats som gjorde att en
FeedProcessing.ChangeFeedObserverCloseReason.Unknown
-stängningsorsak skickades tillFeedProcessing.IChangeFeedObserver.CloseAsync
om partitionen inte hittades eller om målrepliken inte var uppdaterad mot lässessionen. Nu användsFeedProcessing.ChangeFeedObserverCloseReason.ResourceGone
- ochFeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable
-stängningsorsaker i dessa fall. - Den nya stängningsorsaken
FeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable
har lagts till, som skickas för att stänga ändringsflödesövervakaren när målrepliken inte är uppdaterad mot lässessionen.
2.3.0
- En ny metod (
ChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory
) och associerat offentligt gränssnitt (ICheckpointPartitionProcessorFactory
) har lagts till. Detta gör att en implementering avIPartitionProcessor
-gränssnittet kan använda en inbyggd kontrollpunktsmekanism. Den nya fabriken liknar den befintligaIPartitionProcessorFactory
, förutom att dessCreate
-metod även stöderILeaseCheckpointer
-parametern. - Endast en av de två metoderna, antingen
ChangeFeedProcessorBuilder.WithPartitionProcessorFactory
ellerChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory
, kan användas för sammaChangeFeedProcessorBuilder
-instans.
2.2.8
- Förbättringar av stabilitet och diagnoserbarhet:
- Stöd har lagts till för att upptäcka tidskrävande läsningar av ändringsflöden. När det tar längre tid än det värde som anges av
ChangeFeedProcessorOptions.ChangeFeedTimeout
egenskapen utförs följande steg:- Läsningen av ändringsflödet på den partition som orsakar problem avbryts.
- Instansen av ändringsflödesprocessorn blir av med ägarskapet av det lån som orsakar problem. Det avlägsnade lånet plockas upp igen under nästa steg då ett lån ska göras, antingen av samma eller av en annan instans av ändringsflödesprocessorn. Det gör att läsningen av ändringsflödet börjar om.
- Ett problem rapporteras till hälsoövervakaren. Standardhälsoövervakaren skickar alla rapporterade problem till spårningsloggen.
- En ny offentlig egenskap har lagts till:
ChangeFeedProcessorOptions.ChangeFeedTimeout
. Standardvärdet för den här egenskapen är 10 minuter. - Ett nytt offentligt enum-värde har lagts till:
Monitoring.MonitoredOperation.ReadChangeFeed
. Om värdet förHealthMonitoringRecord.Operation
ärMonitoring.MonitoredOperation.ReadChangeFeed
betyder det att hälsoproblemet har att göra med läsningen av ändringsflödet.
- Stöd har lagts till för att upptäcka tidskrävande läsningar av ändringsflöden. När det tar längre tid än det värde som anges av
2.2.7
- Förbättrad strategi för belastningsutjämning för scenario när det tar längre tid än lånens förfallointervall att hämta alla lån, till exempel på grund av nätverksproblem:
- I det här scenariot betraktade belastningsutjämningsalgoritmen felaktigt lån som förfallna, vilket gjorde att lån stals från aktiva ägare. Detta ledde till onödig ombalansering av många lån.
- Det här problemet har åtgärdats i den här versionen. Nu undviks återförsök vid en konflikt när förfallna lån hämtas som ägaren inte har ändrat och hämtningen av förfallna lån skjuts upp till nästa belastningsutjämningsiteration.
2.2.6
- Förbättrad hantering av övervakarundantag.
- Mer detaljerad information om Observer-fel:
- När en övervakare stängs på grund av ett undantag av övervakarens ProcessChangesAsync, tar CloseAsync nu emot orsaksparametern ChangeFeedObserverCloseReason.ObserverError.
- Spårning har lagts till för att identifiera fel i användarkoden i en övervakare.
2.2.5
- Stöd har lagts till för att hantera delningar i samlingar som använder delat databasflöde.
- Ett problem har åtgärdats i den här versionen som kan uppstå på grund av en delning i samlingar som använder delat databasflöde när delningen resulterar i en ombalansering av partitioner där endast ett, i stället för två, nyckelintervall för underordnade partitioner skapas. När detta händer kan ändringsflödesprocessorn fastna i borttagningen av lånet för den gamla partitionens nyckelintervall, i stället för att skapa nya lån. Problemet har åtgärdats i den här versionen.
2.2.4
- En ny egenskap, ChangeFeedProcessorOptions.StartContinuation, har lagts till som gör det möjligt att starta ändringsflödet från en begäran om fortsättningstoken. Egenskapen används bara om lånesamlingen är tom eller om ett lån inte har någon angiven fortsättningstoken. För lån i lånesamlingen med en angiven ContinuationToken används ContinuationToken och ChangeFeedProcessorOptions.StartContinuation ignoreras.
2.2.3
- Stöd har lagts till för anpassade lagringsplatser så att fortsättningstoken kan bevaras per partition.
- Till exempel kan en Azure Cosmos DB-lånesamling partitioneras på valfritt sätt med en anpassad lagringsplats.
- Anpassade lagringsplatser för lån kan använda den nya utökningspunkten ChangeFeedProcessorBuilder.WithLeaseStoreManager(ILeaseStoreManager) och det nya offentliga gränssnittet ILeaseStoreManager.
- ILeaseManager-gränssnittet har omstrukturerats till gränssnitt med flera roller.
- Mindre icke-bakåtkompatibel ändring: utökningspunkten ChangeFeedProcessorBuilder.WithLeaseManager(ILeaseManager) har tagits bort. Använd ChangeFeedProcessorBuilder.WithLeaseStoreManager(ILeaseStoreManager) i stället.
2.2.2
- I den här versionen har ett problem åtgärdats som inträffar när en delning bearbetas i en övervakad samling och en partitionerad lånesamling används. När ett lån bearbetas för en delad partition får inte lånet som är kopplat till den partitionen tas bort. Problemet har åtgärdats i den här versionen.
2.2.1
- Fast beräkning för konton med flera skrivregioner och nytt format för sessionstoken.
2.2.0
- Stöd har lagts till för partitionerade lånesamlingar. Partitionsnyckeln måste definieras som /id.
- Mindre icke-bakåtkompatibel ändring: RequestOptions- och CancellationToken-parametrar har lagts till i metoderna för IChangeFeedDocumentClient-gränssnittet och ChangeFeedDocumentClient-klassen. IChangeFeedDocumentClient är en avancerad utökningspunkt som gör att du kan tillhandahålla anpassad implementering av dokumentklienten som ska användas med ändringsflödesprocessorn, till exempel dekorera DocumentClient och fånga upp alla anrop till den för att utföra extra spårning, felhantering osv. Med den här uppdateringen måste koden som implementerar IChangeFeedDocumentClient ändras för att inkludera nya parametrar i implementeringen.
- Mindre diagnostikförbättringar.
2.1.0
- Ett nytt API har lagts till: Task<IReadOnlyList<RemainingPartitionWork>> IRemainingWorkEstimator.GetEstimatedRemainingWorkPerPartitionAsync(). Det kan användas för att uppskatta arbetet för varje partition.
- Stöder Microsoft.Azure.DocumentDB SDK 2.0. Kräver Microsoft.Azure.DocumentDB 2.0 eller senare.
2.0.6
- Den offentliga egenskapen ChangeFeedEventHost.HostName har lagts till för kompatibilitet med v1.
2.0.5
- Ett konkurrenstillstånd som inträffar i samband med partitionsdelningar har åtgärdats. Konkurrenstillståndet kan göra att lån som erhålls genast går förlorade vid partitionsdelningen vilket ger upphov till konkurrens. Problemet med konkurrenstillståndet har åtgärdats i den här versionen.
2.0.4
- GA SDK
2.0.3 (förhandsversion)
Åtgärdat följande problem:
- När en partitionsdelning görs kan det förekomma dubbel bearbetning av dokument som ändrats före delningen.
- GetEstimatedRemainingWork-API:et returnerade 0 när det inte fanns några lån i lånesamlingen.
Följande undantag görs offentliga. Tillägg som implementerar IPartitionProcessor kan returnera dessa undantag.
- 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 (förhandsversion)
- Mindre API-ändringar:
- ChangeFeedProcessorOptions.IsAutoCheckpointEnabled har tagits bort och markerats som föråldrad.
2.0.1 (förhandsversion)
- Stabilitetsförbättringar:
- Bättre initiering av lånelagringsplatsen. När lånelagringsplatsen är tom kan endast en instans av processorn initiera den. De andra väntar.
- Mer stabil/effektiv förnyelse/frisläppning av lån. Förnyelsen och frisläppningen av ett lån på en partition görs oberoende av förnyelsen på andra. I v1 gjordes detta i följd för alla partitioner.
- Nytt v2-API:
- Verktygsmönster för flexibel konstruktion av processorn: klassen ChangeFeedProcessorBuilder.
- Stöder valfri kombination av parametrar.
- Kan använda DocumentClient-instansen för övervakning och/eller lånesamling (inte tillgängligt i v1).
- IChangeFeedObserver.ProcessChangesAsync stöder nu CancellationToken.
- IRemainingWorkEstimator – den återstående arbetsberäkningen kan användas separat från processorn.
- Nya utökningspunkter:
- IPartitionLoadBalancingStrategy – för anpassad belastningsutjämning av partitioner mellan instanser av processorn.
- ILease, ILeaseManager – för anpassad lånehantering.
- IPartitionProcessor – för anpassade bearbetningsändringar på en partition.
- Verktygsmönster för flexibel konstruktion av processorn: klassen ChangeFeedProcessorBuilder.
- Loggning – använder LibLog-biblioteket.
- 100 % bakåtkompatibel med v1-API:et.
- Ny kodbas.
- Kompatibel med version 1.21.1 och senare av SQL .NET SDK.
v1-versioner
1.3.3
- Ytterligare loggning har lagts till.
- En DocumentClient-läcka har åtgärdats som inträffade när beräkningen av väntande arbete anropades flera gånger.
1.3.2
- Korrigeringar har gjorts i beräkningen av väntande arbete.
1.3.1
- Stabilitetsförbättringar.
- Ett problem med hanteringen av avbrutna uppgifter har åtgärdats som gjorde att övervakare stoppades på vissa partitioner.
- Stöd för manuell hantering av kontrollpunkter.
- Kompatibel med version 1.21 och senare av SQL .NET SDK.
1.2.0
- Stöd för .NET Standard 2.0 har lagts till. Nu stöder paketet moniker för
netstandard2.0
- ochnet451
-ramverk. - Kompatibel med version 1.17.0 och senare av SQL .NET SDK.
- Kompatibel med version 1.5.1 och senare av SQL .NET Core SDK.
1.1.1
- Ett problem med beräkningen av återstående arbete har åtgärdats som inträffade när ändringsflödet var tomt eller när det inte fanns något väntande arbete.
- Kompatibel med version 1.13.2 och senare av SQL .NET SDK.
1.1.0
- En metod har lagts till för att hämta en beräkning av återstående arbete som ska bearbetas i ändringsflödet.
- Kompatibel med version 1.13.2 och senare av SQL .NET SDK.
1.0.0
- GA SDK
- Kompatibel med version 1.14.1 och lägre av SQL .NET SDK.
Utgivnings- och tillbakadragningsdatum
Microsoft meddelar kunder minst 12 månader innan en SDK-version dras tillbaka för att säkerställa en smidig övergång till en nyare version eller en version som stöds. Nya funktioner, verktyg och optimeringar läggs endast till i den aktuella SDK-versionen. Därför rekommenderar vi att du alltid uppgraderar till den senaste SDK-versionen så snart som möjligt.
Varning
Efter den 31 augusti 2022 kommer Azure Cosmos DB inte längre att göra felkorrigeringar, lägga till nya funktioner och ge stöd till version 1.x av Azure Cosmos DB .NET eller .NET Core SDK för API för NoSQL. Om du föredrar att inte uppgradera kommer begäranden från version 1.x av SDK:n att fortsätta att hanteras av tjänsten Azure Cosmos DB.
Version | Utgivningsdatum | Förfallodatum |
---|---|---|
2.5.0 | 15 maj 2023 | --- |
2.4.0 | 6 maj 2021 | --- |
2.3.2 | Den 11 augusti 2020 | --- |
2.3.1 | 30 juli 2020 | --- |
2.3.0 | Den 2 april 2020 | --- |
2.2.8 | Den 28 oktober 2019 | --- |
2.2.7 | Den 14 maj 2019 | --- |
2.2.6 | Den 29 januari 2019 | --- |
2.2.5 | Den 13 december 2018 | --- |
2.2.4 | Den 29 november 2018 | --- |
2.2.3 | Den 19 november 2018 | --- |
2.2.2 | den 31 oktober 2018 | --- |
2.2.1 | Den 24 oktober 2018 | --- |
1.3.3 | Den 8 maj 2018 | --- |
1.3.2 | Den 18 april 2018 | --- |
1.3.1 | 13 mars 2018 | --- |
1.2.0 | 31 oktober 2017 | --- |
1.1.1 | Den 29 augusti 2017 | --- |
1.1.0 | Den 13 augusti 2017 | --- |
1.0.0 | Den 7 juli 2017 | --- |
Vanliga frågor
Hur meddelas jag om tillbakadragningen av SDK?
För att säkerställa en smidig övergång till en SDK-version som stöds meddelar Microsoft kunder 12 månader innan stödet för den äldre SDK:n upphör. Vi meddelar dig via flera kommunikationskanaler: på Azure-portalen, genom Azure-uppdateringar och via direktkommunikation till tjänstadministratörer.
Kan jag skapa program med en SDK för Azure Cosmos DB som kommer att dras tillbaka inom 12 månader?
Ja. Du kan skapa, distribuera och ändra program med Azure Cosmos DB-SDK:n som kommer att dras tillbaka under 12-månadsperioden. Vi rekommenderar att du migrerar till en senare version av SDK:n för Azure Cosmos DB under 12-månadsperioden.
Vad händer med program som använder den Azure Cosmos DB-SDK som inte längre stöds efter tillbakadragningsdatumet?
Efter tillbakadragningsdatumet kommer Azure Cosmos DB inte att erbjuda buggkorrigeringar, nya funktioner eller stöd för de SDK-versioner som har dragits tillbaka. Om du föredrar att inte uppgradera kommer begäranden från de inaktuella versionerna av SDK:n att fortsätta att hanteras av tjänsten Azure Cosmos DB.
Vilka SDK-versioner har de senaste funktionerna och uppdateringarna?
Nya funktioner och uppdateringar läggs bara till i den senaste delversionen av den senaste större SDK-versionen som stöds. Vi rekommenderar att du alltid använder den senaste versionen för att dra nytta av nya funktioner, prestandaförbättringar och felkorrigeringar. Om du använder en gammal, icke-tillbakadragen version av SDK:n, kommer dina begäranden till Azure Cosmos DB fortfarande att fungera, men du kommer inte att ha tillgång till nya funktioner.
Vad gör jag om jag inte har möjlighet att uppdatera mitt program före det sista datumet?
Vi rekommenderar att du uppgraderar till den senaste SDK:n så tidigt som möjligt. När en SDK-version har flaggats för tillbakadragning har du 12 månader på dig att uppdatera ditt program. Om du inte har möjlighet att uppdatera före tillbakadragningsdatumet kommer begäranden som skickas från de tillbakadragna versionerna av SDK:n att fortsätta att betjänas av Azure Cosmos DB, och dina aktiva program kommer att fortsätta att fungera. Men Azure Cosmos DB kommer inte längre att erbjuda felkorrigeringar, nya funktioner eller stöd för de tillbakadragna SDK-versionerna.
Om du har en supportplan och behöver teknisk support kontaktar du oss genom att skicka in en supportbegäran.
Hur kan jag begära att funktioner läggs till i ett SDK eller en anslutningsapp?
Nya funktioner läggs inte alltid till i varje SDK eller anslutningsapp omedelbart. Om det finns en funktion som inte stöds som du vill lägga till kan du lägga till feedback i vårt communityforum.
Se även
Mer information om Azure Cosmos DB finns på tjänstsidan för Microsoft Azure Cosmos DB .