Pengembang menggambarkan Kafka sebagai "Sistem pesan yang terdistribusi, toleran terhadap kesalahan, throughput tinggi, pub-sub. " Kafka terkenal sebagai layanan log komit yang dipartisi, didistribusikan, dan direplikasi. Kafka juga menyediakan fungsionalitas sistem pesan, tetapi dengan desain yang unik. Di sisi lain, MongoDB dikenal sebagai "Database untuk ide-ide raksasa. " MongoDB mampu menyimpan data dalam dokumen mirip JSON yang dapat bervariasi dalam struktur, menawarkan skema yang dinamis dan fleksibel. MongoDB dirancang untuk ketersediaan dan skalabilitas tinggi, dengan replikasi bawaan dan auto-sharding.
MongoDB diklasifikasikan di bawah "Database", sementara Kafka termasuk dalam kategori "Antrian Pesan" dari tumpukan teknologi. Pengembang menganggap Kafka "High-throughput", "Distributed" dan "Scalable" sebagai faktor kunci; sedangkan "Penyimpanan berorientasi dokumen", "Tidak ada SQL" dan "Kemudahan penggunaan" dianggap sebagai alasan utama mengapa MongoDB disukai.
Streaming Data di Kafka
Dalam ekosistem data saat ini, tidak ada sistem tunggal yang dapat memberikan semua perspektif yang diperlukan untuk memberikan wawasan data yang sebenarnya. Mendapatkan visualisasi yang lebih baik dari wawasan data dari data memerlukan pencampuran sejumlah besar informasi dari berbagai sumber data. Karena itu, kami ingin segera mendapatkan jawaban; jika waktu yang dibutuhkan untuk menganalisis wawasan data melebihi 10 detik milidetik, maka nilainya hilang atau tidak relevan. Aplikasi seperti deteksi penipuan, perdagangan frekuensi tinggi, dan mesin rekomendasi tidak bisa menunggu. Operasi ini juga dikenal sebagai menganalisis arus masuk data sebelum diperbarui sebagai database catatan dengan toleransi nol untuk kehilangan data, dan tantangannya menjadi lebih menakutkan.
Kafka membantu Anda menyerap dan dengan cepat memindahkan data dalam jumlah besar yang andal dari berbagai sumber data, lalu mengarahkannya ke sistem yang membutuhkannya dengan memfilter, menggabungkan, dan menganalisis dalam perjalanan. Kafka memiliki karakteristik throughput, keandalan, dan replikasi yang lebih tinggi, metode yang dapat diskalakan untuk mengomunikasikan aliran data peristiwa dari satu atau lebih produsen Kafka ke satu atau lebih konsumen Kafka. Contoh acara meliputi:
- Data polusi udara diambil berdasarkan basis berkala
- Seorang konsumen menambahkan item ke keranjang belanja di toko online
- Tweet yang diposting dengan hashtag tertentu
Aliran acara Kafka ditangkap dan diatur ke dalam topik yang telah ditentukan sebelumnya. Produser Kafka memilih topik untuk mengirim acara tertentu, dan konsumen memilih topik yang mereka ambil dari acara tersebut. Misalnya, aplikasi keuangan pasar saham dapat menarik perdagangan saham dari satu topik dan informasi keuangan perusahaan dari topik lain untuk mencari peluang perdagangan.
Kolaborasi MongoDB dan Kafka menjadi inti dari banyak arsitektur data modern saat ini. Kafka dirancang untuk aliran data tanpa batas yang secara berurutan menulis peristiwa ke dalam log komit, memungkinkan pergerakan data waktu nyata antara MongoDB dan Kafka dilakukan melalui penggunaan Kafka Connect.
Konektor MongoDB resmi untuk Kafka dikembangkan dan didukung oleh MongoDB Inc. insinyur. Itu juga diverifikasi oleh Confluent (yang memelopori platform streaming acara yang siap untuk perusahaan), sesuai dengan pedoman yang ditetapkan oleh Program Integrasi Terverifikasi Confluent. Konektor memungkinkan MongoDB dikonfigurasikan sebagai wastafel dan sumber untuk Kafka. Buat pipeline data yang kuat dan reaktif dengan mudah yang mengalirkan peristiwa antara aplikasi dan layanan secara real-time.
Konektor Wastafel MongoDB
MongoDB Sink memungkinkan kita untuk menulis event dari Kafka ke instance MongoDB kita. Konektor Sink mengubah nilai dari Kafka Connect SinkRecords menjadi Dokumen MongoDB dan akan melakukan penyisipan atau peningkatan tergantung pada konfigurasi yang Anda pilih. Diharapkan database dibuat di muka, koleksi MongoDB yang ditargetkan dibuat jika tidak ada.
Konektor Sumber MongoDB Kafka
Konektor Sumber MongoDB Kafka memindahkan data dari kumpulan replika MongoDB ke dalam klaster Kafka. Konektor mengonfigurasi dan menggunakan dokumen peristiwa aliran perubahan dan memublikasikannya ke suatu topik. Aliran perubahan, fitur yang diperkenalkan di MongoDB 3.6, menghasilkan dokumen peristiwa yang berisi perubahan pada data yang disimpan di MongoDB secara real-time dan memberikan jaminan ketahanan, keamanan, dan idempotensi. Anda dapat mengonfigurasi aliran perubahan untuk mengamati perubahan pada tingkat pengumpulan, database, atau penerapan. Ini menggunakan pengaturan berikut untuk membuat aliran perubahan dan menyesuaikan output untuk disimpan ke cluster Kafka. Ini akan memublikasikan peristiwa data yang diubah ke topik Kafka yang terdiri dari database dan nama koleksi dari mana perubahan itu berasal.
Kasus Penggunaan MongoDB &Kafka
Situs Web eCommerce
Kasus penggunaan situs web eCommerce tempat data inventaris disimpan ke MongoDB. Ketika persediaan stok produk berada di bawah ambang batas tertentu, perusahaan ingin melakukan pemesanan otomatis untuk menambah stok. Proses pemesanan dilakukan oleh sistem lain di luar MongoDB, dan menggunakan Kafka sebagai platform untuk sistem yang digerakkan oleh peristiwa semacam itu adalah contoh hebat dari kekuatan MongoDB dan Kafka saat digunakan bersama.
Pelacakan Aktivitas Situs Web
Aktivitas situs seperti halaman yang dikunjungi atau iklan yang ditampilkan ditangkap ke dalam topik Kafka – satu topik per tipe data. Topik tersebut kemudian dapat digunakan oleh beberapa fungsi seperti pemantauan, analisis waktu nyata, atau pengarsipan untuk analisis offline. Wawasan dari data yang disimpan dalam database operasional seperti MongoDB, yang dapat dianalisis bersama data dari sumber lain.
Internet of Things (IoT)
Aplikasi IoT harus mengatasi sejumlah besar peristiwa yang dihasilkan oleh banyak perangkat. Kafka memainkan peran penting dalam menyediakan koleksi fan-in dan real-time dari semua data sensor itu. Kasus penggunaan yang umum adalah telematika, di mana diagnostik dari sensor kendaraan harus diterima dan diproses kembali di pangkalan. Setelah ditangkap dalam topik Kafka, data dapat diproses dalam berbagai cara, termasuk pemrosesan aliran atau arsitektur Lambda. Kemungkinan juga disimpan dalam database operasional seperti MongoDB, yang dapat digabungkan dengan data tersimpan lainnya untuk melakukan analisis waktu nyata dan mendukung aplikasi operasional seperti memicu penawaran yang dipersonalisasi.
Kesimpulan
MongoDB dikenal sebagai basis data non-relasional, yang diterbitkan di bawah lisensi sumber terbuka dan bebas, MongoDB terutama merupakan basis data berorientasi dokumen, yang dimaksudkan untuk digunakan dengan data semi-terstruktur seperti dokumen teks. Ini adalah database modern paling populer yang dibangun untuk menangani volume data heterogen yang sangat besar dan masif.
Kafka adalah platform streaming terdistribusi yang sangat populer yang digunakan ribuan perusahaan seperti New Relic, Uber, dan Square untuk membangun sistem streaming real-time yang terukur, throughput tinggi, dan andal.
Bersama-sama, MongoDB dan Kafka memainkan peran penting dalam ekosistem data kami dan banyak arsitektur data modern.