Apache Kafka adalah sebuah platform distribusi streaming yang dirancang untuk mengatasi masalah pengolahan data secara real-time dalam skala besar. Lalu apa fungsi dan bagaimana cara install Apache Kafka di VPS Linux? Selengkapnya bisa Anda simak pada artikel berikut.
Pada awal era BigData, pengolahan data secara realtime dan berkelanjutan dapat menggunakan sistem berbasis query seperti Hive dan Mapreduce. Namun, seiring berjalannya waktu, kebutuhan sistem semakin meningkat, seperti membutuhkan mekanisme publish/broker dan sistem saat itu belum mampu memenuhi kebutuhan tersebut secara efisien.
Mengetahui permasalahan ini, tim dari perusahaan LinkedIn mengembangkan sebuah sistem pesan publish/subscribe yang kemudian diberi nama Apache Kafka.
Apa itu Apache Kafka?
Kafka adalah salah satu open-source yang dikembangkan oleh Apache Software Foundation dan dirilis pertama kali pada tahun 2011. Sejak tahun 2011, Apache Kafka banyak dipilih oleh administrator untuk aplikasi yang membutuhkan transfer data secara cepat, andal, dan skalabilitas yang tinggi.
Apache Kafka merupakan sistem pesan distribusi yang di desain khusus untuk mengelola aliran data dalam lingkup yang sangat besar. Kafka dapat berfungsi untuk mengirim, menyimpan, dan memproses aliran data secara real-time, dengan toleransi kesalahan yang tinggi dan latensi yang sangat rendah.
Pada dasarnya, Apache Kafka adalah sebuah message broker yang berperan sebagai penghubung antara produsen (producer) dan konsumen (consumer) untuk pengiriman pesan.
Namun, perlu dicatat bahwa dalam proses pengiriman pesan, Kafka berfungsi sebagai pengirim saja (send-only), yang berarti hanya mengirimkan pesan dari produsen ke konsumen. Kelebihan dari Kafka adalah kecepatannya dalam mengirimkan data.
Terminologi Apache Kafka
Berikut adalah terminologi dan susunan dari Apache Kafka :
- Topic : Topic adalah suatu kategori penyusunan data di Kafka, seperti feed/tempat pesan yang nantinya akan dipublikasikan.
- Producer : Sistem yang berfungsi mengirimkan data/topic ke customer sebagai partisi² topik.
- Customer : Sistem yang menerima pesan dari producer dan mengolah data dari topik yang dikirimkan.
- Partisi : Berfungsi untuk memecah topik ke bagian yang lebih kecil, dan mendistribusikan ke broker yang ada.
- Broker : Broker adalah server di Cluster Kafka yang berfungsi untuk menyimpan partisi topik yang ada. Broker menyimpan dan menyebarkan data ke broker lainnya yang tersedia.
- Cluster : Merupakan sistem dari beberapa broker yang bekerjasama memproses suatu data (grup broker).
- Offset : Identifikasi unik dari sebuah topik, yang berfungsi untuk melacak lokasi sebuah data, dan memastikan pesan yang ada tidak ada yang terlewati.
- Replikasi : Proses penyebaran salinan data dari pusat broker ke broker lainnya, agar semua broker yang ada memiliki isi data yang sama dari server pusat/central.
Fungsi Apache Kafka
Apache Kafka memiliki berbagai fungsi dalam pengolahan data secara realtime, berikut adalah beberapa fungsi Apache Kafka secara detail :
1. Streaming Data
Apache Kafka adalah platform streaming data yang dapat dipergunakan untuk mengirim, menyimpan, dan memproses aliran data secara real-time. Data yang dikirimkan oleh producer dikirim dalam sebuah topik-topik Kafka, dan konsumen (costumer) akan membaca data tersebut untuk diproses atau disimpan.
2. Publikasi Massage/publish
Kerangka Kafka menggunakan sistem publish/subscribe yang optimal. Costumer dapat berlangganan ke suatu topik untuk membaca data, memungkinkan agar Costumer mendapatkan update secara berkala untuk data yang selalu sama/independen.
3. Skalabilitas
Apache Kafka dirancang untuk menangani jutaan pesan per detik. Apache Kafka dapat bekerja dengan baik dalam suatu kelompok atau cluster, sehingga dengan bertambahnya volume dan kecepatan aliran data yang harus diproses, kita hanya perlu menambah mesin baru saja pada cluster tanpa haru melakukan vertical-scaling.
4. Replikasi Data
Kafka dapat dioptimalkan dengan fungsi replikasi, berarti kafka memiliki suatu server central yang berfungsi mengirimkan ke server backup yang ada, apabila server utama mengalami kegagalan, maka kinerja akan dialihkan ke server backup yang tersedia.
BACA JUGA : Replikasi Database: Pengertian, Fungsi dan Cara Membuatnya
5. Integrasi BigData
Apache Kafka telah diintegrasikan dengan berbagai sistem BigData, Seperti Apache Spark, Apache Flink, dan Apache Storm. Dengan ini kita dapat mengintegrasikan Kafka dengan sistem lainnya untuk memenuhi analisis data.
Fungsi-fungsi ini menjadikan Apache Kafka sebagai salah satu platform streaming data terkemuka yang digunakan oleh perusahaan² besar untuk mengelola aliran data dalam skala besar dengan cepat, andal, efektif, dan skalabel.
Cara Install Apache Kafka di Ubuntu
Kali ini kita akan melakukan instalasi Apache Kafka pada VPS KVM dengan OS Ubuntu.
Step 1. Persiapan Sistem
Apache Kafka memiliki beberapa persyaratan sistem yang perlu dipenuhi untuk menginstal dan menjalankannya dengan baik. Berikut adalah persyaratan sistem untuk Apache Kafka:
- OS Linux Ubuntu / CentOS7
- JDK minimal Versi 11
- Ram Minimal 4GB (tergantung aliran data yang ditangani oleh Kafka)
- Scala language
Step 2. Cara Install Apache Kafka di Ubuntu
1. Installasi OpenJDK dan Scala dengan perintah sebagai berikut.
sudo apt update
sudo apt upgrade -y
sudo apt install openjdk-17-jdk
sudo apt install scala
Cek apakah Jdk dan Scala telah berhasil terinstall dengan perintah:
java -version
scala -version
2. Konfigurasi User
Buat user kafka, serta berikan akses untuk user kafka sebagai sudoer.
adduser kafka
usermod -aG sudo kafka
3. Download dan ekstrak package Kafka, sesuaikan agar kafka di ekstrak pada folder home user kafka.
su - kafka
wget https://www-us.apache.org/dist/kafka/2.2.0/kafka_2.12-2.2.0.tgz -O kafka.tgz
tar -xzvf kafka.tgz --stripe 1
4. Membuat Systemd Kafka agar dapat dilakukan eksekusi seperti start, stop, restart pada layanan Kafka.
Apache Kafka membutuhkan layanan bernama zookeeper untuk dapat berfungsi. Selanjutnya kita akan melakukan konfigurasi systemd untuk zookeeper yang terdapat pada path /etc/systemd/system/zookeeper.serv
nano /etc/systemd/system/zookeeper.serv
Paste code berikut:
[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
User=kafka
ExecStart=/home/kafka/bin/zookeeper-server-start.sh /home/kafka/config/zookeeper.properties
ExecStop=/home/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Setelah disimpan, kita akan membuat konfigurasi system unit untuk kafka
sudo nano /etc/systemd/system/kafka.service
Paste code berikut:
[Unit]
Requires=zookeeper.service
After=zookeeper.service
[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c '/home/kafka/bin/kafka-server-start.sh /home/kafka/config/server.properties > /home/kafka/kafka.log 2>&1'
ExecStop=/home/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
5. Konfigurasi Firewall Kafka.
Pastikan untuk server vps menggunakan firewall sebagai keamanan lalulintas data dan open port, kita dapat menggunakan firewall ufw atau menggunakan csf firewall
Open port layanan Kafka berikut :
2181 (untuk zookeeper)
9192 (untuk Kafka)
6. Konfigurasi topic Kafka.
Pada setting default Kafka, kita tidak diizinkan untuk menghapus topic, maka akan kita ubah terlebih dahulu konfigurasi sebagai berikut
nano ~/config/server.properties
Tambahkan code berikut:
delete.topic.enable = true
Start dan jalankan Apache Kafka dengan perintah berikut:
sudo systemctl enable kafka
sudo systemctl start kafka
7. Membuat Topic Kafka.
Pada panduan kali ini, kita akan membuat Topic yang bernama “rumahweb” dengan konfigurasi Partisi tunggal.
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic rumahweb
Output :
Created topic "rumahweb".
Kita dapat melihat topic yang kita buat sebelumya melalui zookeeper.
bin/kafka-topics.sh --list --zookeeper localhost:2181
Output :
rumahweb
Pengujian Apache Kafka
Test 1. Mengirim pesan menggunakan Kafka.
Untuk mengirimkan massage secara broadcast maka kita harus menjalankan console terminal sebagai “producer” dan memilih topic sebagai target, Kita akan mengirimkan pesan broadcast marketing layanan Vps RumahWeb
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic rumahweb
>VPS KVM Rumahweb
>vps murah dengan datcenter terbaik (konten)
>
Test 2. Pengujian pesan melalui consumer.
Login sebagai consumer untuk melihat data yang telah dikirimkan oleh Kafka.
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic rumahweb --from-beginning
Output :
VPS KVM Rumahweb
vps murah dengan datcenter terbaik
Sampai step ini, kafka telah berhasil diinstal dan dijalankan. kita dapat mengintegrasikan Kafka ke dalam aplikasi program lainnya menggunakan klien Kafka.
Demikian artikel kami tentang apa itu apache kafka hingga cara install di VPS Ubuntu. Semoga bermanfaat.