1. Latar Belakang
Sistem aplikasi terdistribusi secara real-time sudah menjadi sebuah kebutuhan. Dengan sistem ini, pemrosesan data menjadi lebih stabil, cepat, dan dapat menangani data dalam jumlah yang sangat banyak. Apache Kafka menjadi salah satu solusi untuk keperluan aliran data yang cepat, murah, dan dapat diandalkan. Sehingga, untuk mempelajari Apache Kafka sepenuhnya, kita tidak hanya perlu untuk menjalankannya.
Oleh karena itu, memahami cara kerja Kafka tidak hanya sebatas menjalankannya, tetapi juga mengetahui bagaimana setiap komponen seperti broker, topic, partition, producer, dan consumer saling terhubung dalam sebuah sistem. Melalui pembahasan ini, kita tidak hanya akan belajar cara menginstal dan menjalankan Kafka, tetapi juga memahami alur komunikasi data yang terjadi di dalamnya.
2. Alat dan Bahan
2.1 Perangkat Lunak
- Sistem Operasi Linux Ubuntu
- Terminal
- Visual Studio Code
- Apache Kafka
2.2 Perangkat Keras
- Laptop / PC
- Koneksi Internet
3. Pembahasan
A. Konsep
3.1 Apa Itu Kafka
Apache Kafka atau Kafka merupakan platform streaming real-time yang memungkinkan pengiriman dan pemrosesan data dalam jumlah besar (big data) dengan efisien, cepat, dan terdistribusi. Kafka menjadi salah satu solusi yang digunakan untuk menangani aliran data yang sangat besar dan terus-menerus.
3.2 Mengapa Menggunakan Kafka
- Memungkinkan pemrosesan data secara real-time untuk aplikasi yang membutuhkan analisis secara langsung
- Memudahkan integrasi dengan alat big data lainnya
- Data dapat tetap tersedia meskipun terdapat broker yang gagal
- Dapat menangani aliran data dalam volume besar dan dapat diskalakan dengan mudah
3.3 Kapan dan Dimana Implementasi Kafka
Ketika suatu sistem memiliki aliran data yang berjalan secara terus-menerus dan dalam skala besar, terdapat kemungkinan terjadinya penurunan performa yang dapat menghambat alur kerja aplikasi tersebut. Kondisi ini terjadi pada aplikasi yang memiliki pengguna banyak, seperti pada media sosial dan sistem e-commerce yang setiap aktivitasnya tidak bisa diproses secara langsung tanpa perantara seperti Kafka.
3.4 Bagaimana Arsitektur Kafka
- Producer → Pengirim data / event
- Broker → Server Kafka
- Topic → Tempat penyimpanan data
- Partition → Pembagi topic menjadi bagian yang lebih kecil (misal: Partition 1 memegang sebagian data, Partition 2 memegang sebagian data lainnya)
- Consumer → Pemroses data
- Consumer Group Kumpulan pemroses data
Selain itu, Kafka umumnya memiliki sekumpulan server atau broker yang saling terhubung dan bekerja sama satu sama lain untuk mengelola aliran data yang disebut sebagai Kafka Cluster.
3.5 Message pada Kafka
Pesan atau Message adalah unit data dasar yang diibaratkan seperti pesan yang memiliki header, key, dan value. Producer nantinya mengirim message ke sebuah topic untuk memberitahu pesan apa saja yang dibutuhkan oleh consumer.
3.5 Consumer Group
Consumer Group adalah kumpulan dari pemroses data yang nantinya berbagi tugas untuk saling mengerjakan tugas yang ada di partition.
3.6 Contoh Kasus
- Analisis Log
- Data Streaming
Apabila suatu aplikasi memiliki data yang terus-menerus datang seperti aktivitas pada media sosial, Kafka memungkinkan data-data tersebut terus mengalir tanpa perlu menunggu permintaan sampai selesai.
- Change Data Capture
Kafka dapat menangkap riwayat perubahan data apapun pada aplikasi, seperti perubahan alamat user yang nantinya alamat lama bisa tetap tersimpan oleh Kafka dengan sistem producer dan consumer tadi.
B. Pola Komunikasi Publish-Subscribe
Jadi Kafka dan Publish-Subscribe itu bukanlah dua hal yang berbeda. Sederhananya, pada proses pengiriman data, producer akan mempublish aliran data ke broker (dalam hal ini kafka) dan producer tidak perlu mengetahui proses yang terjadi setelahnya karena ini adalah tugas consumer untuk mengambil data atau mensubscribe data untuk diproses. Begitu juga consumer, dia tidak perlu tahu identitas dari producer.
C. Setup Lingkungan
1. Install default-jdk (JAVA)
3. Masuk ke file hasil ekstrak Kafka dan ketik perintah-perintah dibawah:
- KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"
Perintah ini digunakan untuk membuat cluster ID Kafka secara acak (UUID) yang akan dipakai sebagai identitas unik untuk cluster Kafka.
- bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/server.properties
Perintah ini berfungsi untuk melakukan format penyimpanan Kafka dengan mode standalone menggunakan cluster ID yang sudah dibuat.
- bin/kafka-server-start.sh config/server.properties
Perintah ini digunakan untuk menjalankan server Kafka dan setelah perintah ini dijalankan, Kafka akan aktif dan siap menerima koneksi producer maupun consumer.
Cloud Computing Indonesia. (2024). Mengenal Apache Kafka: Pengertian dan Fungsinya. Diakses dari: https://www.cloudcomputing.id/pengetahuan-dasar/mengenal-apache-kafka#:~:text=Apache%20Kafka%20telah%20membuktikan%20dirinya,meningkatkan%20kinerja%20dan%20efisiensi%20operasional.
Redpanda. (2025). Kafka Cluster Architecture-An in-depth guide for data engineers. Diakses dari: https://www.redpanda.com/guides/kafka-architecture-kafka-cluster#:~:text=Kafka%20clusters%20are%20a%20group,if%20you%20haven't%20already.
Backend Magang. (2025). Kafka Fundamental - Kenalan dengan Kafka. Youtube. https://youtu.be/icbPNsEnbrQ?si=1eOPF5ZzZjn2VMzb
.jpg)
0 Comments