Platform event streaming terdistribusi yang memungkinkan pengiriman, penyimpanan, dan pemrosesan aliran data (stream) real-time dalam skala besar dengan throughput tinggi dan latensi rendah.
Apache Kafka adalah platform distributed event streaming yang awalnya dikembangkan oleh LinkedIn. Kafka digunakan untuk membangun pipeline data real-time dan aplikasi streaming yang andal dan skalabel.
Kategori atau feed tempat pesan (event) disimpan. Seperti tabel di database, tapi untuk stream data.
Setiap topic dibagi menjadi partisi. Partisi memungkinkan parallelism - setiap partisi bisa dibaca oleh consumer berbeda secara bersamaan.
Aplikasi yang mengirim (publish) event ke topic Kafka.
Aplikasi yang membaca (subscribe) event dari topic Kafka.
Sekumpulan consumer yang bekerja sama membaca topic. Setiap partisi hanya dibaca oleh satu consumer dalam group.
Server Kafka. Sebuah cluster Kafka terdiri dari beberapa broker untuk high availability.
| Aspek | Apache Kafka | RabbitMQ / ActiveMQ |
|---|---|---|
| Model | Event log (persistent) | Message queue (hapus setelah dibaca) |
| Retensi | Dapat menyimpan hari/minggu | Biasanya hapus setelah consumed |
| Konsumer | Banyak consumer independen | Pesan hanya dibaca satu consumer |
| Throughput | Jutaan msg/detik | Ribuan msg/detik |
| Use case | Event streaming, log aggregation | Task queue, RPC |
Kafka menyimpan event dalam commit log yang append-only. Consumer membaca event berdasarkan offset (posisi), sehingga:
Pemrosesan data secara real-time saat data masuk - setiap event diproses dalam milidetik hingga detik, tanpa menunggu data dikumpulkan dalam batch.
Framework komputasi terdistribusi open-source yang memungkinkan pemrosesan data skala besar secara in-memory, jauh lebih cepat dari Hadoop MapReduce, dengan dukungan batch, streaming, ML, dan SQL.
Udah paham Apache Kafka? Lanjut latihan SQL dan Excel yuk!
Latihan interaktif, langsung di browser.