π Panduan Kafka Via CLI β Buat Kalian yang Lagi Belajar Streaming Data
Yuk kenalan sama perintah-perintah dasar di Kafka CLI. Mulai dari bikin topik, kirim & baca pesan, sampai mantau consumer group. Semuanya bisa kalian lakuin dari terminal.
βοΈ Setup Kafka Gak Pake Ribet (Pakai Docker Compose)
Sebelum bahas Kafka Via CLI, kalian bisa langsung jalanin Kafka lokal tanpa install manual. Cukup copy file docker-compose.yml di bawah ini
services:
kafka:
image: bitnami/kafka:4.0.0
container_name: kafka_container
environment:
- KAFKA_CFG_NODE_ID=1
- KAFKA_CFG_PROCESS_ROLES=broker,controller
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://0.0.0.0:9094
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,EXTERNAL://localhost:9094
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka:9093
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,EXTERNAL:PLAINTEXT
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
- ALLOW_PLAINTEXT_LISTENER=yes
working_dir: /opt/bitnami/kafka
ports:
- "9094:9094"
networks:
- kafka-network
kafka-ui:
image: provectuslabs/kafka-ui:latest
container_name: kafka-ui
depends_on:
- kafka
ports:
- '8080:8080'
environment:
- KAFKA_CLUSTERS_0_NAME=local-cluster
- KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092
- KAFKA_CLUSTERS_0_READONLY=false
- KAFKA_CLUSTERS_0_TOPIC_AUTO_CREATE=true
networks:
- kafka-network
networks:
kafka-network:
driver: bridge
dan jalankan:
docker compose up -d
π Cek Versi Kafka
./bin/kafka-topics.sh --version
Pake ini buat tahu Kafka versi berapa yang lagi kalian pakai sekarang.
π Bikin Topik Baru
./bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic helloword
./bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic belajarkafka
Kalian bisa bikin topik sesuka hati. Di sini kita bikin
helloworddanbelajarkafka. Topik ini tempat semua pesan akan dikirim.
π§ Lihat Detail Topik
./bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic helloword
Mau tahu isi topik
helloword? Cek berapa partisinya, siapa leader-nya, dan info lainnya.
π§© Bikin Topik dengan Beberapa Partisi
./bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic helloword-partitions --partitions 2
Biasanya default-nya 1 partisi. Tapi kalau kalian butuh performa lebih, tambahin partisi pas bikin topik.
π§ Ubah Jumlah Partisi Topik yang Udah Ada
./bin/kafka-topics.sh --bootstrap-server localhost:9092 --alter --topic helloword --partitions 2
Udah bikin topik tapi kurang partisi? Tenang, tinggal tambahin. Tapi inget ya, partisi nggak bisa dikurangin.
π Lihat Semua Topik yang Ada
./bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
Cek semua topik yang udah kalian buat di broker Kafka.
ποΈ Hapus Topik
./bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic belajarkafka
Topik udah gak dipakai? Hapus aja. Tapi make sure Kafka kalian udah nyalain setting
delete.topic.enable=true.
π€ Kirim Pesan ke Topik (Mode Biasa)
./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic helloword
Setelah dijalankan, kalian bisa ngetik pesan langsung di terminal. Tiap enter, langsung masuk ke topik.
π Kirim Pesan dengan Key (Pakai Pemisah β:β)
./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic helloword --property "parse.key=true" --property "key.separator=:"
Kalian bisa kirim pesan dalam format
key:value. Misalid123:halo semua. Ini berguna kalau kalian pakai partitioning berdasarkan key.
π₯ Baca Pesan dari Topik (Consumer Biasa)
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic helloword --from-beginning
Ini buat baca semua pesan yang ada di topik
helloword, dari awal banget.
π₯ Baca Pesan Pakai Consumer Group
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic helloword --from-beginning --group payment
Kalau kalian pengen banyak consumer kerja bareng, pake group. Pesan bakal dibagi-bagi antar consumer dalam group yang sama.
π Baca Pesan + Tampilkan Key-nya
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic helloword --from-beginning --group payment --property "print.key=true"
Kalau kalian kirim pesan pakai key, di sini key-nya juga bakal ditampilkan saat kalian consume.
π Cek Offset & Lag Semua Consumer Group
./bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --all-groups --all-topics --describe
Buat mantau sejauh mana consumer group kalian udah baca pesan. Bisa lihat juga ada βlagβ gak β artinya pesan yang belum kebaca.
β Penutup
Nah itu dia, jurus-jurus Kafka CLI yang wajib tau kalau lagi belajar atau ngetes sistem message streaming. Dengan command di atas, kalian udah bisa:
- π― Bikin dan ngatur topik
- π¨ Kirim & baca pesan
- π§ Kelola dan pantau consumer group