.NET 변경 피드 프로세서 SDK: 다운로드 및 릴리스 정보(레거시)
적용 대상: NoSQL
링크 | |
---|---|
SDK 다운로드 | NuGet |
API 설명서 | 변경 피드 프로세서 라이브러리 API 참조 설명서 |
시작 | 변경 피드 프로세서 .NET SDK 시작 |
현재 지원되는 프레임워크 | Microsoft .NET Framework 4.5 Microsoft .NET Core |
참고 항목
변경 피드 프로세서를 사용하는 경우 SDK에 기본 제공된 변경 피드가 있는 .NET SDK의 최신 버전 3.x를 참조하세요.
릴리스 정보
v2 빌드
2.5.0
System.Diagnostics.TraceSource
의 인스턴스를 인수로 사용하는Microsoft.Azure.Documents.ChangeFeedProcessor.Logging.TraceLogProvider
클래스에 대한 새 생성자가 추가되었습니다. 이렇게 하면 .net 추적에 사용되는TraceLogProvider
를 소스 코드에서 초기화된 사용자 지정TraceSource
인스턴스에서 프로그래밍 방식으로 만들 수 있습니다. 이 변경 이전에는 App.config 파일을 사용하여 .net 추적만 구성할 수 있었습니다.
2.4.0
- /partitionKey로 정의된 파티션 키로 분할할 수 있는 임대 컬렉션에 대한 지원이 추가되었습니다. 이 변경 전에 임대 컬렉션의 파티션 키는 /id로 정의되어야 합니다.
- 이 릴리스에서는 Gremlin 컬렉션이 /id로 정의된 파티션 키를 가질 수 없으므로 API for Gremlin과 함께 임대 컬렉션을 사용할 수 있습니다.
2.3.2
- 핫 마이그레이션 경로를 사용하도록 설정하는 [V3 SDK]와 임대 저장소 호환성이 추가되었습니다. 애플리케이션은 상태를 잃지 않고 V3 SDK로 마이그레이션하고 변경 피드 프로세서 라이브러리로 다시 마이그레이션할 수 있습니다.
2.3.1
- 파티션을 찾을 수 없거나 대상 복제본이 읽기 세션을 사용하여 최신 상태가 아닌 경우 가까운 이유가 전송
FeedProcessing.IChangeFeedObserver.CloseAsync
된 경우FeedProcessing.ChangeFeedObserverCloseReason.Unknown
를 수정했습니다. 이러한 경우FeedProcessing.ChangeFeedObserverCloseReason.ResourceGone
및FeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable
가까운 이유가 이제 사용됩니다. - 대상 복제본이 읽기 세션과 최신 상태가 아닐 때 변경 피드 관찰자를 닫기 위해 전송되는 새로운 닫기 이유
FeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable
을 추가했습니다.
2.3.0
- 새 메서드
ChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory
및 해당 공용 인터페이스ICheckpointPartitionProcessorFactory
가 추가되었습니다. 이렇게 하면 인터페이스의 구현에서IPartitionProcessor
기본 제공 검사점 메커니즘을 사용할 수 있습니다. 새 팩터리는 기존IPartitionProcessorFactory
팩터리와 유사합니다. 단, 메서드Create
도 매개 변수를ILeaseCheckpointer
사용합니다. - 두 메서드
ChangeFeedProcessorBuilder.WithPartitionProcessorFactory
또는ChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory
중 하나만 동일한ChangeFeedProcessorBuilder
인스턴스에 사용할 수 있습니다.
2.2.8
- 안정성 및 진단 기능 향상:
- 시간이 오래 걸리는 읽기 변경 피드를 검색하는 지원이 추가되었습니다. 속성에 지정된
ChangeFeedProcessorOptions.ChangeFeedTimeout
값보다 오래 걸리면 다음 단계를 수행합니다.- 문제가 있는 파티션에서 변경 피드를 읽는 작업이 중단됩니다.
- 변경 피드 프로세서 인스턴스는 문제가 있는 임대의 소유권을 삭제합니다. 삭제된 임대는 동일하거나 다른 변경 피드 프로세서 인스턴스에서 수행되는 다음 임대 획득 단계 중에 선택됩니다. 이렇게 하면 변경 피드 읽기가 다시 시작됩니다.
- 상태 모니터에 문제가 보고됩니다. 기본 히스 모니터는 보고된 모든 문제를 추적 로그에 보냅니다.
- 새 공용 속성이
ChangeFeedProcessorOptions.ChangeFeedTimeout
추가되었습니다. 이 속성의 기본값은 10분입니다. - 새 공용 열거형 값이
Monitoring.MonitoredOperation.ReadChangeFeed
추가되었습니다.HealthMonitoringRecord.Operation
값이Monitoring.MonitoredOperation.ReadChangeFeed
로 설정된 경우 상태 문제가 변경 피드 읽기와 관련되어 있음을 나타냅니다.
- 시간이 오래 걸리는 읽기 변경 피드를 검색하는 지원이 추가되었습니다. 속성에 지정된
2.2.7
- 예를 들어 네트워크 문제로 인해 모든 임대를 가져오는 데 임대 만료 간격보다 오래 걸리는 시나리오에 대한 향상된 부하 분산 전략:
- 이 시나리오에서는 임대가 만료된 것으로 간주하여 활성 소유자의 임대를 도용하는 부하 분산 알고리즘이 사용됩니다. 이로 인해 많은 임대를 불필요하게 다시 분산시킬 수 있습니다.
- 이 문제는 소유자가 변경하지 않은 만료된 임대를 획득하는 동안 충돌을 다시 시도하지 않고 만료된 임대 취득을 다음 부하 분산 반복으로 연기하여 이 릴리스에서 해결되었습니다.
2.2.6
- 관찰자 예외 처리가 향상되었습니다.
- 관찰자 오류에 대한 다양한 정보:
- 관찰자의 ProcessChangesAsync에서 throw된 예외로 인해 관찰자가 닫히면 CloseAsync는 ChangeFeedObserverCloseReason.ObserverError로 설정된 이유 매개 변수를 받게 됩니다.
- 관찰자의 사용자 코드 내에서 오류를 식별하는 추적이 추가되었습니다.
2.2.5
- 공유 데이터베이스 처리량을 사용하는 컬렉션의 분할 처리에 대한 지원이 추가되었습니다.
- 이 릴리스는 결과를 파티션 리밸런싱으로 분할할 때 공유 데이터베이스 처리량을 사용하여 컬렉션에서 분할하는 동안 발생할 수 있는 문제를 해결하며, 2개가 아닌 하나의 자식 파티션 키 범위만 만듭니다. 이 경우 변경 피드 프로세서가 이전 파티션 키 범위에 대한 임대를 삭제하고 새 임대를 만들지 않을 수 있습니다. 이 문제는 이 릴리스에서 해결되었습니다.
2.2.4
- 요청 연속 토큰에서 변경 피드를 시작할 수 있도록 새 속성 ChangeFeedProcessorOptions.StartContinuation이 추가되었습니다. 이 속성은 임대 컬렉션이 비어 있거나 임대에 ContinuationToken이 설정되어 있지 않은 경우에만 사용됩니다. ContinuationToken이 설정된 임대 컬렉션의 임대의 경우 ContinuationToken이 사용되고 ChangeFeedProcessorOptions.StartContinuation이 무시됩니다.
2.2.3
- 사용자 지정 저장소를 사용하여 파티션당 연속 토큰을 유지하기 위한 지원이 추가되었습니다.
- 예를 들어 사용자 지정 임대 저장소는 사용자 지정 방식으로 분할된 Azure Cosmos DB 임대 컬렉션일 수 있습니다.
- 사용자 지정 임대 저장소는 새 확장성 지점 ChangeFeedProcessorBuilder.WithLeaseStoreManager(ILeaseStoreManager) 및 ILeaseStoreManager 공용 인터페이스를 사용할 수 있습니다.
- ILeaseManager 인터페이스를 여러 역할 인터페이스로 리팩터링했습니다.
- 사소한 호환성이 손상되는 변경: 확장성 지점 ChangeFeedProcessorBuilder.WithLeaseManager(ILeaseManager)가 제거되었습니다. 대신 ChangeFeedProcessorBuilder.WithLeaseStoreManager(ILeaseStoreManager)를 사용합니다.
2.2.2
- 이 릴리스는 모니터링되는 컬렉션에서 분할을 처리하고 분할된 임대 컬렉션을 사용하는 동안 발생하는 문제를 해결합니다. 분할 파티션에 대한 임대 처리 시 해당 파티션에 해당하는 임대는 삭제할 수 없습니다. 이 문제는 이 릴리스에서 해결되었습니다.
2.2.1
- 다중 쓰기 영역과 새 세션 토큰 형식의 계정에 대한 고정 추정기 계산입니다.
2.2.0
- 분할된 임대 컬렉션에 대한 지원이 추가되었습니다. 파티션 키는 /id로 정의해야 합니다.
- 주요 변경 내용: IChangeFeedDocumentClient 인터페이스 및 ChangeFeedDocumentClient 클래스의 메서드는 RequestOptions 및 CancellationToken 매개 변수를 포함하도록 변경되었습니다. IChangeFeedDocumentClient는 변경 피드 프로세서와 함께 사용할 문서 클라이언트의 사용자 지정 구현을 제공할 수 있는 고급 확장성 지점입니다. 예를 들어 DocumentClient를 데코레이트하고 추가 추적, 오류 처리 등을 수행하기 위해 이에 대한 모든 호출을 가로챕니다. 이 업데이트로 IChangeFeedDocumentClient를 구현하는 코드는 구현에 새 매개 변수를 포함하도록 변경되어야 합니다.
- 사소한 진단 기능 개선.
2.1.0
- 새 API인 Task<IReadOnlyList<RemainingPartitionWork>> IRemainingWorkEstimator.GetEstimatedRemainingWorkPerPartitionAsync()를 추가했습니다. 각 파티션에 대한 예상 작업을 가져오는 데 사용할 수 있습니다.
- Microsoft.Azure.DocumentDB SDK 2.0을 지원합니다. Microsoft.Azure.DocumentDB 2.0 이상이 필요합니다.
2.0.6
- v1과의 호환성에 대한 ChangeFeedEventHost.HostName 공용 속성이 추가되었습니다.
2.0.5
- 파티션 분할 동안 발생하는 경쟁 조건을 수정했습니다. 경합 상태는 임대를 획득하고 파티션 분할 중에 즉시 손실되고 경합을 일으킬 수 있습니다. 이 릴리스에서는 경합 상태 문제가 해결되었습니다.
2.0.4
- GA SDK
2.0.3-prerelease
다음 문제가 수정됨:
- 파티션 분할이 발생하면 분할 전에 수정된 문서의 중복 처리가 있을 수 있습니다.
- 임대 컬렉션에 임대가 없는 경우 GetEstimatedRemainingWork API가 0를 반환했습니다.
다음 예외가 공개됩니다. IPartitionProcessor를 구현하는 확장은 이러한 예외를 throw할 수 있습니다.
- 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
- 사소한 API 변경 내용:
- 사용되지 않는 것으로 표시된 ChangeFeedProcessorOptions.IsAutoCheckpointEnabled가 제거되었습니다.
2.0.1-prerelease
- 안정성 향상:
- 임대 저장소 초기화를 보다 효율적으로 처리합니다. 임대 저장소가 비어 있는 경우 프로세서의 한 인스턴스만 초기화할 수 있으며 다른 인스턴스는 대기합니다.
- 보다 안정적이고 효율적인 임대 갱신/릴리스. 하나의 파티션 임대를 갱신하고 해제하는 것은 다른 파티션을 갱신하는 것과는 독립적입니다. v1에서는 모든 파티션에 대해 순차적으로 수행됩니다.
- 새 v2 API:
- 프로세서의 유연한 생성을 위한 작성기 패턴: ChangeFeedProcessorBuilder 클래스입니다.
- 모든 조합의 매개 변수를 사용할 수 있습니다.
- 모니터링 및/또는 임대 컬렉션에 DocumentClient 인스턴스를 사용할 수 있습니다(v1에서 사용할 수 없음).
- IChangeFeedObserver.ProcessChangesAsync는 이제 CancellationToken을 사용합니다.
- IRemainingWorkEstimator - 나머지 작업 추정기는 프로세서와 별도로 사용할 수 있습니다.
- 새 확장성 지점:
- IPartitionLoadBalancingStrategy - 프로세서 인스턴스 간 파티션의 사용자 지정 부하 분산을 위한 것입니다.
- ILease, ILeaseManager - 사용자 지정 임대 관리를 위한 것입니다.
- IPartitionProcessor - 파티션의 사용자 지정 처리 변경 내용입니다.
- 프로세서의 유연한 생성을 위한 작성기 패턴: ChangeFeedProcessorBuilder 클래스입니다.
- 로깅 - LibLog 라이브러리를 사용합니다.
- v1 API와 100% 이전 버전과 호환 가능합니다.
- 새 코드 베이스입니다.
- SQL .NET SDK 버전 1.21.1 이상과 호환됩니다.
v1 빌드
1.3.3
- 더 많은 로깅이 추가되었습니다.
- 보류 중인 작업 예상을 여러 번 호출할 때 DocumentClient 누수가 수정되었습니다.
1.3.2
- 보류 중인 작업 예측에서 해결합니다.
1.3.1
- 안정성 개선.
- 일부 파티션에서 관찰자가 중지될 수 있는 취소된 작업 문제를 처리하기 위한 수정입니다.
- 수동 검사점 설정 지원
- SQL .NET SDK 버전 1.21 이상과 호환됩니다.
1.2.0
- .NET Standard 2.0에 대한 지원을 추가합니다. 이제 패키지에서 모니커와
net451
프레임워크를 지원합니다netstandard2.0
. - SQL .NET SDK 버전 1.17.0 이상과 호환됩니다.
- SQL .NET Core SDK 버전 1.5.1 이상과 호환됩니다.
1.1.1
- 변경 피드가 비어 있거나 보류 중인 작업이 없을 때 예상되는 남은 작업을 계산할 때 발생하는 문제를 해결했습니다.
- SQL .NET SDK 버전 1.13.2 이상과 호환됩니다.
1.1.0
- 변경 피드에서 처리할 남은 작업의 예상을 가져오는 메서드를 추가했습니다.
- SQL .NET SDK 버전 1.13.2 이상과 호환됩니다.
1.0.0
- GA SDK
- SQL .NET SDK 버전 1.14.1 이하와 호환됩니다.
릴리스 및 사용 중지 날짜
Microsoft는 매끄럽게 최신/지원 버전으로 전환할 수 있도록 적어도 SDK 사용 중지 12개월 전에 알림을 제공합니다. 새로운 기능 및 최적화는 현재 SDK에만 추가되어 있으며, 따라서 항상 최신 SDK 버전으로 가능한 한 빨리 업그레이드할 것을 권장합니다.
Warning
2022년 8월 31일 이후 Azure Cosmos DB는 더 이상 버그를 수정하거나 새로운 기능을 추가하거나 Azure Cosmos DB .NET 또는 .NET Core SDK for API for NoSQL의 버전 1.x에 대한 지원을 제공하지 않습니다. 업그레이드하지 않을 경우 SDK의 버전 1.x에서 전송된 요청은 Azure Cosmos DB 서비스에서 계속 처리됩니다.
버전 | 출시 날짜 | 사용 중지 날짜 |
---|---|---|
2.5.0 | 2023년 5월 15일 | --- |
2.4.0 | 2021년 5월 6일 | --- |
2.3.2 | 2020년 8월 11일 | --- |
2.3.1 | 2020년 7월 30일 | --- |
2.3.0 | 2020년 4월 2일 | --- |
2.2.8 | 2019년 10월 28일 | --- |
2.2.7 | 2019년 5월 14일 | --- |
2.2.6 | 2019년 1월 29일 | --- |
2.2.5 | 2018년 12월 13일 | --- |
2.2.4 | 2018년 11월 29일 | --- |
2.2.3 | 2018년 11월 19일 | --- |
2.2.2 | 2018년 10월 31일 | --- |
2.2.1 | 2018년 10월 24일 | --- |
1.3.3 | 2018년 5월 8일 | --- |
1.3.2 | 2018년 4월 18일 | --- |
1.3.1 | 2018년 3월 13일 | --- |
1.2.0 | 2017년 10월 31일 | --- |
1.1.1 | 2017년 8월 29일 | --- |
1.1.0 | 2017년 8월 13일 | --- |
1.0.0 | 2017년 7월 7일 | --- |
FAQ
사용 중지된 SDK에 대한 알림은 어떻게 받나요?
Microsoft는 지원되는 SDK로 매끄럽게 전환할 수 있도록 사용 중지되는 SDK 지원이 종료되기 12개월 전에 사전 알림을 제공합니다. Azure Portal, Azure 업데이트, 할당된 서비스 관리자에 대한 직접 통신 등 다양한 통신 채널을 통해 알려드립니다.
12개월 동안 사용 중지된 Azure Cosmos DB SDK를 사용하여 애플리케이션을 작성할 수 있나요?
예, 12개월 알림 기간 동안 사용 중지된 Azure Cosmos DB SDK를 사용하여 애플리케이션을 작성, 배포 및 수정할 수 있습니다. 12개월 알림 기간 동안 지원되는 최신 버전의 Azure Cosmos DB SDK로 적절하게 마이그레이션하는 것이 좋습니다.
사용 중지 날짜 후에는 지원되지 않는 Azure Cosmos DB SDK를 사용하는 애플리케이션은 어떻게 되나요?
사용 중지 날짜 이후 Azure Cosmos DB는 더 이상 버그를 수정하거나, 새 기능을 추가하거나, 사용 중지된 SDK 버전을 지원하지 않습니다. 업그레이드하지 않으려는 경우 사용 중지된 버전의 SDK에서 보낸 요청은 Azure Cosmos DB 서비스에서 계속 제공됩니다.
최신 기능 및 업데이트가 있는 SDK 버전은 무엇입니까?
새 기능 및 업데이트는 지원되는 최신 주요 SDK 버전의 최신 부 버전에만 추가됩니다. 항상 최신 버전을 사용하여 새로운 기능, 성능 향상 및 버그 수정을 활용하는 것이 좋습니다. 사용 중지되지 않은 이전 버전의 SDK를 사용하는 경우 Azure Cosmos DB에 대한 요청은 계속 작동하지만 새 기능에는 액세스할 수 없습니다.
컷오프 날짜 전에 애플리케이션을 업데이트할 수 없는 경우 어떻게 해야 하나요?
가능한 한 빨리 최신 SDK로 업그레이드하는 것이 좋습니다. SDK가 사용 중지로 태깅된 후 12개월 내에 애플리케이션을 업데이트해야 합니다. 사용 중지 날짜까지 업데이트할 수 없는 경우 사용 중지된 버전의 SDK에서 보낸 요청은 Azure Cosmos DB에서 계속 제공되므로 실행 중인 애플리케이션이 계속 작동합니다. 그러나 Azure Cosmos DB는 더 이상 버그를 수정하거나 새 기능을 추가하거나 사용 중지된 SDK 버전을 지원하지 않습니다.
지원 계획이 있고 기술 지원이 필요한 경우 지원 티켓을 제출하여 문의하세요 .
SDK 또는 커넥터에 기능 추가를 요청하려면 어떻게 해야 하나요?
새로운 기능이 모든 SDK 또는 커넥터에 항상 즉시 추가되는 것은 아닙니다. 지원되지 않는 기능 중 추가하려는 기능이 있는 경우 커뮤니티 포럼에 피드백을 추가합니다.
참고 항목
Azure Cosmos DB에 대한 자세한 내용은 Microsoft Azure Cosmos DB 서비스 페이지를 참조하세요.