.NET Değişiklik Akışı İşlemci SDK'sı: İndirme ve sürüm notları (Eski)
UYGULANANLAR: NoSQL
Bağlantılar | |
---|---|
SDK indirmesi | NuGet |
API belgeleri | Değişiklik Akışı İşlemcisi kitaplığı API başvurusu belgeleri |
Başlayın | Değişiklik Akışı İşlemcisi .NET SDK'sını kullanmaya başlama |
Şu anda desteklenen çerçeve | Microsoft .NET Framework 4.5 Microsoft .NET Core |
Not
Değişiklik akışı işlemcisini kullanıyorsanız, değişiklik akışının SDK'da yerleşik olarak bulunduğu .NET SDK'sının en yeni sürümü 3.x'e bakın.
Sürüm notları
v2 derlemeleri
2.5.0
- bir örneğini
Microsoft.Azure.Documents.ChangeFeedProcessor.Logging.TraceLogProvider
System.Diagnostics.TraceSource
bağımsız değişken olarak alan sınıfı için yeni oluşturucu eklendi. Bu, .net izleme için kullanılan öğesinin kaynak kodda başlatılan özelTraceSource
bir örnekten program aracılığıyla oluşturulmasını sağlarTraceLogProvider
. Bu değişiklik öncesinde yalnızca App.config dosyasını kullanarak .net izlemeyi yapılandırmak mümkündü.
2.4.0
- /partitionKey olarak tanımlanan bölüm anahtarıyla bölümlenebilen kira koleksiyonları için destek eklendi. Bu değişiklik öncesinde kira koleksiyonunun bölüm anahtarının /id olarak tanımlanması gerekir.
- Bu sürüm, Gremlin koleksiyonları /id olarak tanımlanan bölüm anahtarına sahip olamayacağı için Gremlin için API ile kira koleksiyonlarının kullanılmasına izin verir.
2.3.2
- [V3 SDK'sına dinamik geçiş yollarını etkinleştiren kira deposu uyumluluğu eklendi. Uygulama V3 SDK'sına geçirilebilir ve hiçbir durum kaybı olmadan Değişiklik Akışı işlem kitaplığına geri döndürülebilir.
2.3.1
- Bölüm bulunamadığında veya hedef çoğaltmanın, okuma oturumu kadar güncel olmaması durumunda
FeedProcessing.IChangeFeedObserver.CloseAsync
hedefineFeedProcessing.ChangeFeedObserverCloseReason.Unknown
kapatma nedeninin gönderilmesi durumu düzeltildi. Artık bu durumlardaFeedProcessing.ChangeFeedObserverCloseReason.ResourceGone
veFeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable
kapatma nedenleri kullanılıyor. - Hedef çoğaltmanın okuma oturumu kadar güncel olmadığı durumlarda değişiklik akışı gözlemcisini kapatmak için gönderilen yeni
FeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable
kapatma nedeni eklendi.
2.3.0
- Yeni
ChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory
metodu ve buna karşılık gelenICheckpointPartitionProcessorFactory
genel arabirimi eklendi. Bu, yerleşik denetim noktası mekanizmasını kullanmak içinIPartitionProcessor
arabiriminin uygulanmasına olanak tanır. Yeni fabrika, mevcutIPartitionProcessorFactory
ile benzerdir; tek farkıCreate
metodunun aynı zamandaILeaseCheckpointer
parametresini almasıdır. - Aynı
ChangeFeedProcessorBuilder
örneği için iki metottan yalnızca biri (ChangeFeedProcessorBuilder.WithPartitionProcessorFactory
veyaChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory
) kullanılabilir.
2.2.8
- Kararlılık ve tanınabilirlik iyileştirmeleri:
- Uzun süren değişiklik akışı okumasının algılanması için destek eklendi. Özelliği tarafından belirtilen değerden uzun sürdüğünde
ChangeFeedProcessorOptions.ChangeFeedTimeout
aşağıdaki adımlar izlenir:- Sorunlu bölümde değişiklik akışını okuma işlemi durdurulur.
- Değişiklik akışı işlemci örneği sorunlu kiralamanın sahipliğini bırakır. Bırakılan kiralama, aynı veya farklı değişiklik akışı işlemci örneği tarafından yapılacak bir sonraki kiralama alma adımı sırasında seçilir. Bu şekilde değişiklik akışını okuma işlemi baştan başlar.
- Durum izleyicisine bir sorun bildirilir. Varsayılan durum izleyicisi bildirilen tüm sorunları izleme günlüğüne gönderir.
- Yeni bir ortak özellik eklendi:
ChangeFeedProcessorOptions.ChangeFeedTimeout
. Bu özelliğin varsayılan değeri 10 dakikadır. - Yeni bir genel sabit listesi değeri eklendi:
Monitoring.MonitoredOperation.ReadChangeFeed
.HealthMonitoringRecord.Operation
değerininMonitoring.MonitoredOperation.ReadChangeFeed
olarak ayarlanması, sistem durumu sorununun değişiklik akışını okuma işlemiyle ilgili olduğunu gösterir.
- Uzun süren değişiklik akışı okumasının algılanması için destek eklendi. Özelliği tarafından belirtilen değerden uzun sürdüğünde
2.2.7
- Tüm kiralamaların kira süre sonu aralığından uzun sürmesi senaryosu için geliştirilmiş yük dengeleme stratejisi, örneğin ağ sorunları nedeniyle:
- Bu senaryoda yük dengeleme algoritması hatalı olarak kira sürelerinin dolduğunu varsayıyordu ve bu da etkin kullanıcılardan kiraların alınmasına neden oluyordu. Bu durum birçok kiralamada gereksiz bir yeniden dengeleme işlemi tetikleyebiliyordu.
- Bu sürümde bu sorun, sahibin değiştirmediği süresi dolmuş kirayı alırken oluşan çakışmada yeniden deneme önlenerek ve süresi dolan kiranın alınması bir sonraki yük dengeleme yinelemesine ertelenerek düzeltildi.
2.2.6
- Gözlemci özel durumlarının işlenmesi geliştirildi.
- Gözlemci hataları hakkında daha zengin bilgiler:
- Gözlemci, Gözlemcinin ProcessChangesAsync öğesi tarafından oluşturulan bir özel durum nedeniyle kapatılırsa,CloseAsync artık ChangeFeedObserverCloseReason.ObserverError olarak ayarlanmış neden parametresini alıyor.
- Gözlemcide kullanıcı kodu içindeki hataları tanımlamak için izlemeler eklendi.
2.2.5
- Paylaşılan veritabanı aktarım hızını kullanan koleksiyonlarda bölme işlemini işleme desteği eklendi.
- Bu sürümde, paylaşılan veritabanı aktarım hızı kullanılarak koleksiyonlarda bölme işlemi yapıldığı sırada, bölme işlemi sonucunda iki yerine yalnızca bir alt bölüm anahtarı aralığı oluşturularak bölüm yeniden dengelemesi yapıldığında oluşabilen bir sorun düzeltildi. Bu durum oluştuğunda Değişiklik Akışı İşlemcisi, eski bölüm anahtarı aralığına yönelik kiralama silinirken kilitlenebilir ve yeni kiralamalar oluşturmayabilir. Sorun bu sürümde düzeltildi.
2.2.4
- Değişiklik akışının istek devamlılık belirtecinden başlatılmasını desteklemek için yeni ChangeFeedProcessorOptions.StartContinuation özelliği eklendi. Bu özellik yalnızca kira koleksiyonu boş olduğunda veya kiranın ContinuationToken öğesi ayarlanmadığında kullanılır. ContinuationToken öğesinin ayarlandığı kira koleksiyonundaki kiralar için ContinuationToken kullanılır ve ChangeFeedProcessorOptions.StartContinuation yoksayılır.
2.2.3
- Bölüm başına devamlılık belirtecini kalıcı hale getirmek üzere özel depo kullanma desteği eklendi.
- Örneğin özel kiralama deposu, özel bir yolla bölümlenmiş Azure Cosmos DB kira koleksiyonu olabilir.
- Özel kira depoları yeni ChangeFeedProcessorBuilder.WithLeaseStoreManager(ILeaseStoreManager) genişletilebilirlik noktasını ve ILeaseStoreManager genel arabirimini kullanabilir.
- ILeaseManager arabirimi, birden çok rol arabirimi halinde yeniden düzenlendi.
- Hataya neden olan küçük değişiklik: ChangeFeedProcessorBuilder.WithLeaseManager(ILeaseManager) genişletilebilirlik noktası kaldırıldı; bunun yerine ChangeFeedProcessorBuilder.WithLeaseStoreManager(ILeaseStoreManager) kullanın.
2.2.2
- Bu sürümde, izlenen koleksiyonda bir bölme işlenirken ve bölümlenmiş kira koleksiyonu kullanılırken oluşan bir sorun düzeltildi. Bölünmüş bölümün kiralaması işlenirken, bölüme karşılık gelen kiralama silinemeyebiliyor. Sorun bu sürümde düzeltildi.
2.2.1
- Birden çok yazma bölgesi olan ve yeni Oturum Belirteci biçimine sahip hesaplar için Tahmin Aracı hesaplaması düzeltildi.
2.2.0
- Bölümlenmiş kira koleksiyonları için destek eklendi. Bölüm anahtarı /id olarak tanımlanmalıdır.
- Hataya neden olan küçük değişiklik: IChangeFeedDocumentClient arabiriminin ve ChangeFeedDocumentClient sınıfının yöntemleri RequestOptions ve CancellationToken parametrelerini içerecek şekilde değiştirildi. IChangeFeedDocumentClient, Değişiklik Akışı İşlemcisi ile kullanmak üzere Belge İstemcisi'nin özel uygulamasını sağlamanıza olanak tanıyan gelişmiş bir genişletilebilirlik noktasıdır; örneğin, DocumentClient'ı süsleyin ve ek izleme, hata işleme vb. yapmak için ona yapılan tüm çağrıları araya koyun. Bu güncelleştirmeyle, IChangeFeedDocumentClient uygulayan kodun uygulamaya yeni parametreler içerecek şekilde değiştirilmesi gerekir.
- Küçük tanılama geliştirmeleri.
2.1.0
- Yeni Task<IReadOnlyList<RemainingPartitionWork>> IRemainingWorkEstimator.GetEstimatedRemainingWorkPerPartitionAsync() API'si eklendi. Bu, her bölümün tahmini çalışmasını almak için kullanılabilir.
- Microsoft.Azure.DocumentDB SDK 2.0'ı destekler. Microsoft.Azure.DocumentDB 2.0 veya üzerini gerektirir.
2.0.6
- v1 ile uyumluluk için ChangeFeedEventHost.HostName ortak özelliği eklendi.
2.0.5
- Bölümü bölme işlemi sırasında oluşan yarış durumu düzeltildi. Yarış durumu kiranın alınmasına ve bölümü bölme işlemi sırasında hemen kaybedilmesine yol açarak çekişmeye neden olabiliyor. Yarış durumu sorunu bu sürümde düzeltildi.
2.0.4
- GA SDK
2.0.3 ön sürümü
Aşağıdaki sorunlar çözülmüştür:
- Bölümü bölme işlemi gerçekleştiğinde, bölme işlemi öncesinde değiştirilen belgelerde yinelenen işleme ortaya çıkabiliyordu.
- Kira koleksiyonunda hiç kira olmadığında GetEstimatedRemainingWork API'si 0 döndürüyordu.
Aşağıdaki özel durumlar genel kullanıma sunuldu. IPartitionProcessor gerçekleştirilen uzantılar bu özel durumları oluşturabilir.
- 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 ön sürümü
- İkincil API değişiklikleri:
- Kullanımdan kaldırıldı olarak işaretlenmiş olan ChangeFeedProcessorOptions.IsAutoCheckpointEnabled kaldırıldı.
2.0.1 ön sürümü
- Kararlılık geliştirmeleri:
- Kira deposu başlatma işlemi daha iyi işleniyor. Kira deposu boş olduğunda işlemcinin tek bir örneği depoyu başlatabilir ve diğerleri bekler.
- Daha kararlı/verimli kira yenileme/yayınlama. Bir bölümde kirayı yenileme ve yayınlama, diğerlerini yenilemekten bağımsızdır. v1'de bu işlem tüm bölümler için sıralı olarak yapılıyordu.
- Yeni v2 API'si:
- İşlemcinin esnek yapısı için oluşturucu deseni: ChangeFeedProcessorBuilder sınıfı.
- Parametrelerin herhangi bir bileşimini alabilir.
- İzleme ve/veya kira koleksiyonu için DocumentClient örneğini alabilir (v1'de kullanılamaz).
- IChangeFeedObserver.ProcessChangesAsync şimdi CancellationToken alıyor.
- IRemainingWorkEstimator - Kalan iş tahmin aracı işlemciden ayrı olarak kullanılabilir.
- Yeni genişletilebilirlik noktaları:
- IPartitionLoadBalancingStrategy - işlemcinin örnekleri arasında bölümlerin özel yük dengelemesi için.
- ILease, ILeaseManager - özel kira yönetimi için.
- IPartitionProcessor - bölümdeki özel işleme değişiklikleri için.
- İşlemcinin esnek yapısı için oluşturucu deseni: ChangeFeedProcessorBuilder sınıfı.
- Logging - LibLog kitaplığını kullanır.
- Geriye dönük olarak v1 API ile %100 uyumludur.
- Yeni kod tabanı.
- SQL .NET SDK 1.21.1 ve üzeri sürümleriyle uyumludur.
v1 derlemeleri
1.3.3
- Daha fazla günlük eklendi.
- Bekleyen iş tahmini birden çok kez çağrıldığında oluşan DocumentClient sızıntısı düzeltildi.
1.3.2
- Bekleyen iş tahminindeki düzeltmeler.
1.3.1
- Kararlılık geliştirmeleri.
- Bazı bölümlerde gözlemcilerin durmasına yol açan iptal edilmiş görevleri işleme sorunu düzeltildi.
- El ile denetim noktası oluşturma desteği.
- SQL .NET SDK 1.21 ve üzeri sürümleriyle uyumludur.
1.2.0
- .NET Standard 2.0 için destek eklendi. Paket artık
netstandard2.0
venet451
çerçevesi bilinen adlarını destekliyor. - SQL .NET SDK 1.17.0 ve üzeri sürümleriyle uyumludur.
- SQL .NET Core SDK 1.5.1 ve üzeri sürümleriyle uyumludur.
1.1.1
- Değişiklik Akışı boş olduğunda veya bekleyen iş olmadığında, kalan iş tahmini hesaplamasındaki sorun düzeltildi.
- SQL .NET SDK 1.13.2 ve üzeri sürümleriyle uyumludur.
1.1.0
- Değişiklik Akışında işlenecek kalan iş tahminini alma yöntemi eklendi.
- SQL .NET SDK 1.13.2 ve üzeri sürümleriyle uyumludur.
1.0.0
- GA SDK
- SQL .NET SDK 1.14.1 ve öncesi sürümleriyle uyumludur.
Yayın ve Kullanımdan Kaldırma tarihleri
Microsoft daha yeni/desteklenen bir sürüme geçişi kolaylaştırmak için bir SDK'yı kullanımdan kaldırmadan en az 12 ay önce bildirim sağlar. Yeni özellikler, işlevler ve iyileştirmeler yalnızca geçerli SDK'ya eklendiğinden, her zaman mümkün olan en kısa zamanda, en son SDK sürümüne yükseltmeniz önerilir.
Uyarı
31 Ağustos 2022'den sonra Azure Cosmos DB artık hata düzeltmeleri yapmaz, yeni özellikler eklemez ve NoSQL için API için Azure Cosmos DB .NET veya .NET Core SDK'sının 1.x sürümlerine destek sağlamaz. Yükseltmemeyi tercih ederseniz, SDK'nın 1.x sürümünden gönderilen isteklere Azure Cosmos DB hizmeti tarafından yanıt verilmeye devam edilecektir.
Sürüm | Yayımlama Tarihi | Kullanımdan Kaldırma Tarihi |
---|---|---|
2.5.0 | 15 Mayıs 2023, Saat 2023, Mayıs 2023, Saat 20:00 | --- |
2.4.0 | 6 Mayıs 2021, Saat 2021, Saat 20:00 | --- |
2.3.2 | 11 Ağustos 2020 | --- |
2.3.1 | 30 Temmuz 2020 | --- |
2.3.0 | 2 Nisan 2020 | --- |
2.2.8 | 28 Ekim 2019 | --- |
2.2.7 | 14 Mayıs 2019 | --- |
2.2.6 | 29 Ocak 2019 | --- |
2.2.5 | 13 Aralık 2018 | --- |
2.2.4 | 29 Kasım 2018 | --- |
2.2.3 | 19 Kasım 2018 | --- |
2.2.2 | 31 Ekim 2018, Cumartesi | --- |
2.2.1 | 24 Ekim 2018 | --- |
1.3.3 | 08 Mayıs 2018 | --- |
1.3.2 | 18 Nisan 2018 | --- |
1.3.1 | 13 Mart 2018 | --- |
1.2.0 | 31 Ekim 2017 | --- |
1.1.1 | 29 Ağustos 2017 | --- |
1.1.0 | 13 Ağustos 2017 | --- |
1.0.0 | 07 Temmuz 2017 | --- |
SSS
SDK'nın kullanımdan kaldırıldığı bana nasıl bildirilir?
Microsoft desteklenen SDK'ya sorunsuz geçişi kolaylaştırmak için kullanımdan kaldırılan SDK'nın destek sonundan 12 ay önce bildirimde bulunacak. Size bu durumu çeşitli iletişim kanallarıyla bildireceğiz: Azure portal, Azure güncelleştirmeleri ve atanan hizmet yöneticilerine doğrudan iletişim.
12 aylık dönem boyunca, kullanımdan kaldırılacak olan Azure Cosmos DB SDK'sını kullanarak uygulama yazabilir miyim?
Evet, 12 aylık bildirim dönemi boyunca kullanımdan kaldırılacak olan Azure Cosmos DB SDK'sını kullanarak uygulamaları yazabilir, dağıtabilir ve değiştirebilirsiniz. 12 aylık bildirim dönemi boyunca, uygun olduğunda Azure Cosmos DB SDK'sının desteklenen daha yeni bir sürümüne geçmenizi öneririz.
Kullanımdan kaldırma tarihinden sonra, desteklenmeyen Azure Cosmos DB SDK'sını kullanan uygulamalara ne olur?
Kullanımdan kaldırma tarihinden sonra Azure Cosmos DB artık kullanımdan kaldırılan SDK sürümlerinde hata düzeltmeleri yapmayacak, yeni özellikler eklemeyecek veya destek sağlamayacak. Yükseltmemeyi tercih ederseniz, SDK'nın kullanımdan kaldırılan sürümlerinden gönderilen isteklere Azure Cosmos DB hizmeti tarafından yanıt verilmeye devam edilecektir.
Hangi SDK sürümleri en son özellikleri ve güncelleştirmeleri içerecek?
Yeni özellikler ve güncelleştirmeler yalnızca desteklenen en son ana SDK sürümünün en son alt sürümüne eklenecek. Yeni özelliklerden, performans geliştirmelerinden ve hata düzeltmelerinden yararlanmak için her zaman en son sürümü kullanmanızı öneririz. SDK'nın eski ama kullanımdan kaldırılmamış bir sürümünü kullanıyorsanız, Azure Cosmos DB'ye yönelik istekleriniz çalışmaya devam eder ama yeni özelliklerin hiçbirine erişemezsiniz.
Uygulamamı belirli bir kesme tarihinden önce güncelleştiremezsem ne yapmalıyım?
Mümkün olan en kısa zamanda en son SDK'ya yükseltmenizi öneririz. SDK kullanımdan kaldırılmak üzere etiketlendikten sonra, uygulamanızı güncelleştirmek için 12 ayınız olacak. Kullanımdan kaldırma tarihine kadar güncelleştiremezseniz, SDK'nın kullanımdan kaldırılan sürümlerinden gönderilen isteklere Azure Cosmos DB tarafından yanıt verilmeye devam edecek, dolayısıyla çalışan uygulamalarınızda işlev kaybı olmayacak. Ama Azure Cosmos DB artık kullanımdan kaldırılan SDK sürümlerinde hata düzeltmeleri yapmayacak, yeni özellikler eklemeyecek veya destek sağlamayacak.
Destek planınız varsa ve teknik desteğe gerek duyuyorsanız, bir destek bileti doldurarak bizimle iletişime geçin.
Sdk veya bağlayıcıya özelliklerin eklenmesini nasıl isteyebilirim?
Yeni özellikler her zaman her SDK'ya veya bağlayıcıya hemen eklenmez. Eklenmesini istediğiniz desteklenmeyen bir özellik varsa lütfen topluluk forumumuza geri bildirim ekleyin.
Ayrıca bkz.
Azure Cosmos DB hakkında daha fazla bilgi edinmek için bkz . Microsoft Azure Cosmos DB hizmet sayfası.