.NET Change Feed Processor SDK: Unduh dan rilis catatan (Warisan)
BERLAKU UNTUK: NoSQL
Tautan | |
---|---|
Unduhan SDK | NuGet |
Dokumentasi API | Dokumentasi referensi Change Feed Processor library API |
Mulai | Mulai menggunakan Change Feed Processor .NET SDK |
Kerangka kerja yang didukung saat ini | Microsoft .NET Framework 4.5 Microsoft .NET Core |
Catatan
Jika Anda menggunakan change feed processor, harap lihat versi terbaru 3.x dari .NET SDK, yang memiliki change feed yang terpasang di SDK.
Catatan rilis
v2 build
2.5.0
- Menambahkan konstruktor baru untuk
Microsoft.Azure.Documents.ChangeFeedProcessor.Logging.TraceLogProvider
kelas yang mengambil instansSystem.Diagnostics.TraceSource
sebagai argumen. Ini memungkinkanTraceLogProvider
, yang digunakan untuk pelacakan .net, untuk dibuat secara terprogram dari instans kustomTraceSource
yang diinisialisasi dalam kode sumber. Sebelum perubahan ini dimungkinkan untuk mengonfigurasi pelacakan .net menggunakan file App.config.
2.4.0
- Menambahkan dukungan untuk koleksi sewa yang dapat dipartisi dengan kunci partisi yang didefinisikan sebagai /partitionKey. Sebelum perubahan ini, kunci partisi koleksi sewa harus ditentukan sebagai /id.
- Rilis ini memungkinkan penggunaan koleksi sewa dengan API untuk Gremlin, karena koleksi Gremlin tidak dapat memiliki kunci partisi yang didefinisikan sebagai /id.
2.3.2
- Penambahan kompatibilitas penyimpanan sewa dengan [V3 SDK yang memungkinkan jalur hot migration. Aplikasi dapat bermigrasi ke V3 SDK dan bermigrasi kembali ke pustaka prosesor Change Feed tanpa kehilangan status apa pun.
2.3.1
- Perbaikan kasus ketika alasan penutupan
FeedProcessing.ChangeFeedObserverCloseReason.Unknown
dikirim keFeedProcessing.IChangeFeedObserver.CloseAsync
jika partisi tidak dapat ditemukan atau jika replika target tidak termutakhirkan dengan sesi baca. Dalam kasus ini, alasan penutupanFeedProcessing.ChangeFeedObserverCloseReason.ResourceGone
danFeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable
sekarang digunakan. - Penambahan alasan penutupan baru
FeedProcessing.ChangeFeedObserverCloseReason.ReadSessionNotAvailable
yang dikirim untuk menutup observer change feed ketika replika target tidak diperbarui dengan sesi baca.
2.3.0
- Penambahan metode baru
ChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory
dan antarmuka publikICheckpointPartitionProcessorFactory
yang sesuai. Ini memungkinkan implementasi antarmukaIPartitionProcessor
untuk menggunakan mekanisme pos pemeriksaan bawaan. Factory baru mirip denganIPartitionProcessorFactory
yang ada, kecuali bahwa metodeCreate
juga mengambil parameterILeaseCheckpointer
. - Hanya satu dari dua metode, baik
ChangeFeedProcessorBuilder.WithPartitionProcessorFactory
atauChangeFeedProcessorBuilder.WithCheckpointPartitionProcessorFactory
, yang dapat digunakan untuk instansChangeFeedProcessorBuilder
yang sama.
2.2.8
- Peningkatan stabilitas dan diagnosbilitas:
- Penambahan dukungan untuk mendeteksi pembacaan change feed yang memakan waktu lama. Ketika diperlukan waktu lebih lama dari nilai yang ditentukan oleh
ChangeFeedProcessorOptions.ChangeFeedTimeout
properti , langkah-langkah berikut diambil:- Operasi untuk membaca change feed pada partisi bermasalah dibatalkan.
- Contoh change feed prosesor menghentikan kepemilikan sewa yang bermasalah. Sewa yang dihentikan akan diambil selama langkah akuisisi sewa berikutnya yang akan dilakukan oleh instans change feed prosesor yang sama atau berbeda. Dengan cara ini, pembacaan change feed akan dimulai kembali.
- Sebuah masalah dilaporkan ke monitor kesehatan. Monitor heath default mengirimkan semua masalah yang dilaporkan untuk melacak log.
- Penambahan properti publik baru:
ChangeFeedProcessorOptions.ChangeFeedTimeout
. Nilai default properti ini adalah 10 menit. - Penambahan nilai enum publik baru:
Monitoring.MonitoredOperation.ReadChangeFeed
. Ketika nilaiHealthMonitoringRecord.Operation
diatur keMonitoring.MonitoredOperation.ReadChangeFeed
, berarti menunjukkan masalah kesehatan terkait pembacaan change feed.
- Penambahan dukungan untuk mendeteksi pembacaan change feed yang memakan waktu lama. Ketika diperlukan waktu lebih lama dari nilai yang ditentukan oleh
2.2.7
- Peningkatan strategi penyeimbangan beban untuk skenario saat mendapatkan semua sewa membutuhkan waktu lebih lama daripada interval kedaluwarsa sewa, misalnya, karena masalah jaringan:
- Dalam skenario ini algoritme load-balancing digunakan untuk salah mempertimbangkan sewa sebagai kedaluwarsa, yang menyebabkan penciran sewa dari pemilik aktif. Hal ini dapat memicu penyeimbangan kembali banyak sewa yang tidak perlu.
- Masalah ini diperbaiki dalam rilis ini dengan menghindari konflik coba lagi saat memperoleh sewa kedaluwarsa yang pemiliknya tidak berubah dan menunda memperoleh sewa yang kedaluwarsa ke iterasi load-balancing berikutnya.
2.2.6
- Peningkatan penanganan pengecualian Observer.
- Informasi yang lebih kaya tentang kesalahan Pengamat:
- Ketika Observer ditutup karena pengecualian yang dilemparkan oleh ProcessChangesAsync Observer, CloseAsync sekarang akan menerima parameter alasan yang diatur ke ChangeFeedObserverCloseReason.ObserverError.
- Penambahan jejak untuk mengidentifikasi kesalahan dalam kode pengguna di Observer.
2.2.5
- Penambahan dukungan untuk menangani pemisahan dalam koleksi yang menggunakan throughput database bersama.
- Rilis ini memperbaiki masalah yang mungkin terjadi selama pemisahan dalam koleksi menggunakan throughput database bersama saat split menghasilkan rebalancing partisi dengan hanya satu rentang kunci partisi anak yang dibuat, bukan dua. Ketika ini terjadi, Change Feed Processor mungkin terjebak menghapus sewa untuk rentang kunci partisi lama dan tidak membuat sewa baru. Masalah ini diperbaiki dalam rilis ini.
2.2.4
- Menambahkan properti baru ChangeFeedProcessorOptions.StartContinuation untuk mendukung mulai mengubah umpan dari token kelanjutan permintaan. Ini hanya digunakan ketika pengumpulan sewa kosong atau sewa tidak memiliki set ContinuationToken. Untuk sewa dalam pengumpulan sewa yang telah diatur ContinuationToken, ContinuationToken digunakan dan ChangeFeedProcessorOptions.StartContinuation diabaikan.
2.2.3
- Penambahan dukungan untuk menggunakan penyimpanan kustom untuk bertahan token kelanjutan per partisi.
- Misalnya, penyimpanan sewa khusus dapat menjadi koleksi sewa Azure Cosmos DB yang dipartisi dengan cara kustom apa pun.
- Penyimpanan sewa kustom dapat menggunakan titik ekstensifikasi baru ChangeFeedProcessorBuilder.WithLeaseStoreManager(ILeaseStoreManager) dan antarmuka publik ILeaseStoreManager.
- Pemfaktoran ulang antarmuka ILeaseManager ke dalam beberapa antarmuka peran.
- Perubahan kecil: menghapus titik ekstensifikasi ChangeFeedProcessorBuilder.WithLeaseManager(ILeaseManager), gunakan ChangeFeedProcessorBuilder.WithLeaseStoreManager(ILeaseStoreManager) sebagai gantinya.
2.2.2
- Rilis ini memperbaiki masalah yang terjadi selama pemrosesan split dalam koleksi yang dipantau dan menggunakan koleksi sewa yang dipartisi. Saat memproses sewa untuk partisi split, sewa yang sesuai dengan partisi tersebut mungkin tidak dihapus. Masalah ini diperbaiki dalam rilis ini.
2.2.1
- Perbaikan perhitungan Estimator untuk akun dengan beberapa wilayah tulis dan format Token Sesi baru.
2.2.0
- Penambahan dukungan untuk koleksi sewa yang dipartisi. Kunci partisi harus didefinisikan sebagai /id.
- Perubahan kecil: metode antarmuka IChangeFeedDocumentClient dan kelas ChangeFeedDocumentClient diubah untuk menyertakan parameter RequestOptions dan CancellationToken. IChangeFeedDocumentClient adalah titik ekstensifikasi lanjutan yang memungkinkan Anda menyediakan implementasi kustom Documennt Client untuk digunakan dengan Ubah Pemroses Umpan, misalnya, menghias DocumentClient dan mencegat semua panggilan ke sana untuk melakukan pelacakan ekstra, penanganan kesalahan, dll. Dengan pembaruan ini, kode yang mengimplementasikan IChangeFeedDocumentClient perlu diubah untuk menyertakan parameter baru dalam implementasi.
- Perbaikan diagnostik kecil.
2.1.0
- Menambahkan API baru, Task<IReadOnlyList<RemainingPartitionWork>> IRemainingWorkEstimator.GetEstimatedRemainingWorkPerPartitionAsync(). Ini dapat digunakan untuk mendapatkan estimasi pekerjaan untuk setiap partisi.
- Mendukung Microsoft.Azure.DocumentDB SDK 2.0. Memerlukan Microsoft.Azure.DocumentDB 2.0 atau yang lebih baru.
2.0.6
- Penambahan properti publik ChangeFeedEventHost.HostName untuk kompatibilitas dengan v1.
2.0.5
- Perbaikan kondisi race yang terjadi selama pemisahan partisi. Kondisi race dapat menyebabkan memperoleh sewa dan segera hilang selama pemisahan partisi dan menyebabkan perselisihan. Masalah kondisi race diperbaiki dengan rilis ini.
2.0.4
- GA SDK
2.0.3-prarilis
Lihat masalah berikut:
- Ketika pemisahan partisi terjadi, mungkin ada pemrosesan duplikat dokumen yang dimodifikasi sebelum pemisahan.
- GetEstimatedRemainingWork API mengembalikan 0 ketika tidak ada sewa yang ada dalam koleksi sewa.
Pengecualian berikut dipublikasikan. Ekstensi yang mengimplementasikan IPartitionProcessor dapat melemparkan pengecualian ini.
- 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-prarilis
- Perubahan API minor:
- Removed ChangeFeedProcessorOptions.IsAutoCheckpointEnabled yang ditandai sebagai kedaluwarsa.
2.0.1-prarilis
- Peningkatan stabilitas:
- Penanganan yang lebih baik dari inisialisasi penyimpanan sewa. Ketika penyimpanan sewa kosong, hanya satu contoh prosesor yang dapat menginisialisasinya, yang lain akan menunggu.
- Perpanjangan/pelepasan sewa yang lebih stabil/efisien. Memperbarui dan merilis sewa satu partisi independen dari memperbarui yang lain. Pada v1 yang dilakukan secara berurutan untuk semua partisi.
- API v2 baru:
- Pola pembangun untuk konstruksi prosesor yang fleksibel: kelas ChangeFeedProcessorBuilder.
- Dapat mengambil kombinasi parameter apa pun.
- Dapat mengambil instans DocumentClient untuk pemantauan dan/atau pengumpulan sewa (tidak tersedia dalam v1).
- IChangeFeedObserver.ProcessChangesAsync sekarang mengambil CancellationToken.
- IRemainingWorkEstimator - estimator kerja yang tersisa dapat digunakan secara terpisah dari prosesor.
- Titik ekstensibilitas baru:
- IPartitionLoadBalancingStrategy - untuk penyeimbangan beban kustom partisi antara instans prosesor.
- ILease, ILeaseManager - untuk manajemen sewa kustom.
- IPartitionProcessor - untuk perubahan pemrosesan kustom pada partisi.
- Pola pembangun untuk konstruksi prosesor yang fleksibel: kelas ChangeFeedProcessorBuilder.
- Pencatatan - menggunakan pustaka LibLog.
- 100% kompatibel dengan v1 API.
- Basis kode baru.
- Kompatibel dengan SQL .NET SDK versi 1.21.1 ke atas.
build v1
1.3.3
- Menambahkan lebih banyak pencatatan.
- Perbaikan kebocoran DocumentClient saat memanggil estimasi kerja yang tertunda beberapa kali.
1.3.2
- Perbaikan dalam estimasi kerja yang tertunda.
1.3.1
- Perbaikan stabilitas.
- Perbaiki untuk menangani masalah tugas yang dibatalkan yang mungkin menyebabkan observer berhenti pada beberapa partisi.
- Dukungan untuk titik pemeriksaan manual.
- Kompatibel dengan SQL .NET SDK versi 1.21 ke atas.
1.2.0
- Menambahkan dukungan untuk .NET Standard 2.0. Paket ini sekarang mendukung kerangka kerja moniker
netstandard2.0
dannet451
. - Kompatibel dengan SQL .NET SDK versi 1.17.0 ke atas.
- Kompatibel dengan SQL .NET Core SDK versi 1.5.1 ke atas.
1.1.1
- Perbaikan masalah dengan perhitungan perkiraan sisa pekerjaan ketika change feed kosong atau tidak ada pekerjaan yang tertunda.
- Kompatibel dengan SQL .NET SDK versi 1.13.2 ke atas.
1.1.0
- Penambahan metode untuk mendapatkan perkiraan sisa pekerjaan yang akan diproses di change feed.
- Kompatibel dengan SQL .NET SDK versi 1.13.2 ke atas.
1.0.0
- GA SDK
- Kompatibel dengan SQL .NET SDK versi 1.14.1 ke bawah.
Tanggal Rilis & Penghentian
Microsoft akan memberikan pemberitahuan minimal 12 bulan sebelum penghentian SDK guna melancarkan transisi ke versi yang lebih baru/didukung. Fitur dan fungsionalitas dan pengoptimalan baru hanya ditambahkan ke SDK saat ini, karenanya sebaiknya Anda selalu meningkatkan ke versi SDK terbaru sedini mungkin.
Peringatan
Setelah 31 Agustus 2022, Azure Cosmos DB tidak akan lagi melakukan perbaikan bug, menambahkan fitur baru, dan memberikan dukungan ke versi 1.x dari Azure Cosmos DB .NET atau .NET Core SDK untuk API untuk NoSQL. Jika Anda tidak ingin meningkatkan versi, permintaan yang dikirim dari SDK versi 1.x akan tetap dilayani oleh layanan Azure Cosmos DB.
Versi | Tanggal Rilis | Tanggal Penghentian |
---|---|---|
2.5.0 | Mei 15, 2023 | --- |
2.4.0 | 6 Mei 2021 | --- |
2.3.2 | 11 Agustus 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 Desember 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 Maret 2018 | --- |
1.2.0 | 31 Oktober 2017 | --- |
1.1.1 | 29 Agustus 2017 | --- |
1.1.0 | 13 Agustus 2017 | --- |
1.0.0 | 07 Juli 2017 | --- |
FAQ
Bagaimana saya akan diberi tahu tentang SDK yang dihentikan?
Microsoft akan memberikan pemberitahuan 12 bulan sebelumnya sebelum akhir dukungan dari SDK yang dihentikan untuk memfasilitasi transisi yang mulus ke SDK yang didukung. Kami akan memberi tahu Anda melalui berbagai saluran komunikasi: portal Azure, pembaruan Azure, dan komunikasi langsung ke administrator layanan yang ditetapkan.
Dapatkah saya membuat aplikasi dengan menggunakan SDK Azure Cosmos DB yang akan dihentikan selama periode 12 bulan?
Ya, Anda akan dapat membuat, menyebarkan, dan mengubah aplikasi dengan menggunakan SDK Azure Cosmos DB yang akan dihentikan selama periode pemberitahuan 12 bulan. Kami menyarankan Anda untuk bermigrasi ke versi terbaru yang didukung dari SDK Azure Cosmos DB selama periode pemberitahuan 12 bulan, sebagaimana mestinya.
Setelah tanggal penghentian, apa yang terjadi pada aplikasi yang menggunakan SDK Azure Cosmos DB yang tidak didukung?
Setelah tanggal penghentian, Azure Cosmos DB tidak akan lagi melakukan perbaikan bug, menambahkan fitur baru, atau memberikan dukungan ke versi SDK yang dihentikan. Jika Anda memilih untuk tidak meningkatkan, permintaan yang dikirim dari versi SDK yang dihentikan akan terus dilayani oleh layanan Azure Cosmos DB.
Versi SDK mana yang akan memiliki fitur dan pembaruan terbaru?
Fitur dan pembaruan baru hanya akan ditambahkan ke versi minor terbaru dari versi SDK utama terbaru yang didukung. Kami menyarankan Anda untuk selalu menggunakan versi terbaru untuk memanfaatkan fitur baru, peningkatan performa, dan perbaikan bug. Jika Anda menggunakan SDK versi lama yang tidak dihentikan, permintaan Anda ke Azure Cosmos DB akan tetap berfungsi, tetapi Anda tidak akan memiliki akses ke kemampuan baru apa pun.
Apa yang harus saya lakukan jika saya tidak dapat memperbarui aplikasi saya sebelum batas waktu?
Kami menyarankan Anda meningkatkan ke SDK terbaru sedini mungkin. Setelah SDK ditandai untuk dihentikan, Anda memiliki waktu 12 bulan untuk memperbarui aplikasi. Jika Anda tidak dapat memperbarui pada tanggal penghentian, permintaan yang dikirim dari versi SDK yang dihentikan akan terus dilayani oleh Azure Cosmos DB, sehingga aplikasi Anda yang sedang berjalan akan terus berfungsi. Tetapi Azure Cosmos DB tidak akan lagi melakukan perbaikan bug, menambahkan fitur baru, atau memberikan dukungan ke versi SDK yang sudah dihentikan.
Jika Anda memiliki rencana dukungan dan memerlukan tim dukungan, hubungi kami dengan mengajukan tiket dukungan.
Bagaimana cara meminta fitur agar ditambahkan ke SDK atau konektor?
Fitur baru tidak selalu ditambahkan ke setiap SDK atau konektor dengan segera. Jika ada fitur tidak didukung yang ingin Anda tambahkan,silakan beri umpan balik ke forum komunitas kami.
Lihat juga
Untuk mempelajari selengkapnya tentang Azure Cosmos DB, lihat halaman layanan Microsoft Azure Cosmos DB .