Apache Kafka
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.
Konsep Inti Kafka
Topic
Kategori atau feed tempat pesan (event) disimpan. Seperti tabel di database, tapi untuk stream data.
Partition
Setiap topic dibagi menjadi partisi. Partisi memungkinkan parallelism - setiap partisi bisa dibaca oleh consumer berbeda secara bersamaan.
Producer
Aplikasi yang mengirim (publish) event ke topic Kafka.
Consumer
Aplikasi yang membaca (subscribe) event dari topic Kafka.
Consumer Group
Sekumpulan consumer yang bekerja sama membaca topic. Setiap partisi hanya dibaca oleh satu consumer dalam group.
Broker
Server Kafka. Sebuah cluster Kafka terdiri dari beberapa broker untuk high availability.
Kafka vs Message Queue Tradisional
| 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 |
Arsitektur Kafka
Kafka menyimpan event dalam commit log yang append-only. Consumer membaca event berdasarkan offset (posisi), sehingga:
- Event tidak hilang setelah dibaca
- Consumer bisa replay event dari awal
- Banyak consumer bisa baca event yang sama secara independen
Istilah Terkait
Stream Processing
Data ProcessingPemrosesan data secara real-time saat data masuk - setiap event diproses dalam milidetik hingga detik, tanpa menunggu data dikumpulkan dalam batch.
Apache Spark
Cloud & Modern Data StackFramework 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.