Membaca umpan perubahan Azure Cosmos DB

BERLAKU UNTUK: NoSQL

Anda dapat bekerja dengan umpan perubahan Azure Cosmos DB dengan menggunakan model dorong atau model tarik. Dengan model dorong, prosesor umpan perubahan mendorong pekerjaan ke klien yang memiliki logika bisnis untuk memproses pekerjaan ini. Namun, kompleksitas dalam memeriksa pekerjaan dan menyimpan status untuk pekerjaan yang diproses terakhir ditangani dalam prosesor umpan perubahan.

Dengan model tarik, klien harus menarik pekerjaan dari server. Klien, dalam hal ini, tidak hanya memiliki logika bisnis untuk memproses pekerjaan tetapi juga menyimpan status untuk pekerjaan yang diproses terakhir, menangani penyeimbangan beban di beberapa klien yang memproses pekerjaan secara paralel, dan menangani kesalahan.

Saat membaca dari umpan perubahan Azure Cosmos DB, kami biasanya merekomendasikan penggunaan model dorong karena Anda tidak perlu merasa khawatir tentang:

  • Polling umpan perubahan untuk perubahan di masa mendatang.
  • Menyimpan status untuk perubahan yang diproses terakhir. Jika Anda membaca dari prosesor umpan perubahan, status secara otomatis disimpan dalam kontainer sewa.
  • Muat keseimbangan di beberapa klien yang mengonsumsi perubahan. Misalnya, jika satu klien tidak dapat mengikuti perubahan pemrosesan dan klien lain memiliki kapasitas yang tersedia.
  • Menangani kesalahan. Misalnya, secara otomatis mencoba kembali perubahan gagal yang tidak diproses dengan benar setelah pengecualian tidak tertangani dalam kode atau masalah jaringan sementara.

Sebagian besar skenario yang menggunakan umpan perubahan Azure Cosmos DB akan menggunakan salah satu opsi model pendorongan. Namun, ada beberapa skenario ketika Anda mungkin menginginkan kontrol tingkat rendah tambahan dari model tarik. Ini termasuk:

  • Membaca perubahan dari kunci partisi tertentu
  • Mengontrol kecepatan saat klien Anda menerima perubahan untuk pemrosesan
  • Melakukan satu kali baca data yang ada di umpan perubahan (misalnya, untuk melakukan migrasi data)

Membaca umpan perubahan dengan model dorong

Menggunakan model dorong adalah cara termudah untuk membaca dari umpan perubahan. Ada dua cara untuk membaca dari umpan perubahan dengan model pendorongan: Azure Functions pemicu Azure Cosmos DB dan prosesor umpan perubahan. Azure Functions menggunakan prosesor umpan perubahan di belakang layar, jadi ini adalah cara yang sama untuk membaca umpan perubahan. Bayangkan Azure Functions hanya sebagai platform hosting untuk prosesor umpan perubahan, bukan cara yang sama sekali berbeda untuk membaca umpan perubahan.

Azure Functions

Azure Functions adalah opsi paling sederhana jika Anda baru saja mulai menggunakan umpan perubahan. Karena kesederhanaannya, ini juga merupakan opsi yang direkomendasikan untuk sebagian besar kasus penggunaan umpan perubahan. Saat Anda membuat pemicu Azure Functions untuk Azure Cosmos DB, Anda memilih kontainer untuk disambungkan, dan Fungsi Azure dipicu setiap kali ada perubahan dalam kontainer. Karena Azure Functions menggunakan prosesor umpan perubahan di belakang layar, maka secara otomatis akan menyejajarkan pemrosesan perubahan di seluruh partisi kontainer Anda.

Berkembang dengan Azure Functions adalah pengalaman yang mudah dan bisa lebih cepat daripada menerapkan prosesor umpan perubahan sendiri. Pemicu dapat dibuat dengan menggunakan portal Azure Functions atau secara terprogram menggunakan SDK. Visual Studio dan VS Code memberikan dukungan untuk menulis Azure Functions, dan Anda bahkan dapat menggunakan Azure Functions CLI untuk pengembangan lintas platform. Anda dapat menulis dan men-debug kode di desktop Anda, lalu menyebarkan fungsi dengan satu tombol. Lihat Komputasi database tanpa server dengan menggunakan Azure Functions dan artikel Menggunakan umpan perubahan dengan artikel Azure Functions untuk mempelajari lebih lanjut.

Menggunakan pustaka prosesor umpan perubahan

Prosesor umpan perubahan memberi Anda kontrol lebih besar terhadap umpan perubahan dan masih menyembunyikan sebagian besar kompleksitas. Pustaka prosesor umpan perubahan mengikuti pola pengamat, yang mengatur agar fungsi pemrosesan Anda dipanggil oleh pustaka. Prosesor umpan perubahan akan secara otomatis memeriksa perubahan dan, jika perubahan ditemukan, "dorong" ke klien. Jika Anda memiliki umpan perubahan throughput tinggi, Anda dapat membuat beberapa klien untuk membaca umpan perubahan. Prosesor umpan perubahan akan secara otomatis membagi beban di antara klien yang berbeda. Anda tidak perlu menerapkan logika apa pun untuk penyeimbangan beban di beberapa klien atau logika apa pun untuk mempertahankan status sewa.

Prosesor umpan perubahan menjamin pengiriman "setidaknya sekali" dari semua perubahan. Dengan kata lain, jika Anda menggunakan prosesor umpan perubahan, fungsi pemrosesan Anda akan berhasil dipanggil untuk setiap item di umpan perubahan. Jika ada pengecualian yang tidak tertangani dalam logika bisnis dalam fungsi pemrosesan Anda, perubahan yang gagal akan dicoba kembali hingga berhasil diproses. Untuk mencegah prosesor umpan perubahan Anda "macet" teruslah mencoba kembali perubahan yang sama, tambahkan logika dalam fungsi pemrosesan Anda untuk menulis dokumen, sesuai pengecualian, ke antrean huruf mati. Pelajari selengkapnya tentang penanganan kesalahan.

Di Azure Functions, rekomendasi untuk menangani kesalahan adalah sama. Anda masih harus menambahkan logika dalam kode delegasi Anda untuk menulis dokumen, kecuali, ke antrean huruf mati. Namun, jika ada pengecualian yang tidak tertangani di Azure Function Anda, perubahan yang menghasilkan pengecualian tidak akan dicoba kembali secara otomatis. Jika ada pengecualian yang tidak tertangani dalam logika bisnis, Azure Function akan melanjutkan untuk memproses perubahan berikutnya. Fungsi Azure tidak akan mencoba kembali perubahan gagal yang sama.

Seperti halnya Azure Functions, berkembang dengan pustaka prosesor umpan perubahan itu mudah. Namun, Anda bertanggung jawab untuk menyebarkan satu atau beberapa host untuk prosesor umpan perubahan. Host adalah instans aplikasi yang menggunakan prosesor umpan perubahan untuk mendengarkan perubahan. Meskipun Azure Functions memiliki kemampuan untuk penskalaan otomatis, Anda bertanggung jawab untuk menskalakan host Anda. Untuk mempelajari lebih lanjut, lihat menggunakan prosesor umpan perubahan. Pustaka prosesor umpan perubahan adalah bagian dari Azure Cosmos DB SDK V3.

Membaca umpan perubahan dengan model tarik

Model tarik umpan perubahan memungkinkan Anda untuk mengonsumsi umpan perubahan dengan kecepatan Anda sendiri. Perubahan harus diminta oleh klien dan tidak ada polling otomatis untuk perubahan. Jika Anda ingin "menandai" perubahan terakhir yang diproses secara permanen (mirip dengan kontainer sewa model dorong), Anda harus menyimpan token kelanjutan.

Dengan menggunakan model tarik umpan perubahan, Anda mendapatkan kontrol tingkat yang lebih rendah dari umpan perubahan. Saat membaca umpan perubahan dengan model tarik, Anda memiliki tiga opsi:

  • Membaca perubahan untuk seluruh kontainer
  • Membaca perubahan untuk FeedRange tertentu
  • Membaca perubahan untuk nilai kunci partisi tertentu

Anda dapat menyejajarkan pemrosesan perubahan di beberapa klien, sama seperti yang Anda bisa lakukan dengan prosesor umpan perubahan. Namun, model penarikan tidak secara otomatis menangani penyeimbangan beban di seluruh klien. Saat Anda menggunakan model tarik untuk menyejajarkan pemrosesan umpan perubahan, Anda akan terlebih dahulu mendapatkan daftar FeedRanges. FeedRange mencakup rentang nilai kunci partisi. Anda harus memiliki proses orkestrator yang mendapatkan FeedRanges dan mendistribusikannya di antara komputer Anda. Anda kemudian dapat menggunakan FeedRanges ini untuk meminta beberapa komputer membaca umpan perubahan secara paralel.

Tidak ada jaminan pengiriman "setidaknya sekali" bawaan dengan model penarikan. Model tarik memberi Anda kontrol tingkat rendah untuk memutuskan cara Anda ingin menangani kesalahan.

Ubah umpan dalam API untuk Cassandra dan MongoDB

Fungsionalitas umpan perubahan muncul sebagai aliran perubahan di API untuk MongoDB dan Kueri dengan predikat dalam API untuk Cassandra. Untuk mempelajari selengkapnya tentang detail implementasi untuk API untuk MongoDB, lihat Mengubah aliran di Azure Cosmos DB for MongoDB.

Native Apache Cassandra menyediakan change data capture (CDC), mekanisme untuk menandai tabel tertentu untuk pengarsipan dan menolak penulisan ke tabel tersebut setelah ukuran-on-disk yang dapat dikonfigurasi untuk log CDC tercapai. Fitur umpan perubahan di Azure Cosmos DB for Apache Cassandra meningkatkan kemampuan untuk mengkueri perubahan dengan predikat melalui CQL. Untuk mempelajari selengkapnya tentang detail implementasi, lihat Mengubah umpan di Azure Cosmos DB for Apache Cassandra.

Langkah berikutnya

Sekarang Anda dapat lanjut untuk mempelajari selengkapnya tentang umpan perubahan di artikel berikut ini: