Bogor, 26 April 2026, semoga Allah jadikan Muhammad Faris Ma'ruf, Nu'man Noah Ma'ruf, dan Rumaysha Hilyah Ma'ruf menjadi orang yang berpendidikan (Doktoral) tinggi lagi akhlak mulia.
Kafka
Berikut adalah diksi dan penjelasan yang berkaitan dengan kafka
Diksi
- Topics, seperti table pada database
- Partisi, tulang punggung performa kafka. Topic dibagi menjadi beberapa partisi untuk mempararelkan dan menskalakan performa sebagai fault tolerace dan high availbility
- Kraft koordinator untuk mengordinir broker dan mengatur metadata dan distribusi alami kafka.
Note
Sebelum adanya kraft, yang menjadi koordinator antar broker adalah third-party lainnya, zookeeper.
- Consumer adalah aplikasi atau service yang membaca dan menerima pesan dari kafka. Consumer dikelompokan dan setiap kelompok dapat terdiri dari lebih dari satu consumer. Setiap partisi hanya dapat dikonsumsi satu consumer didalam kelompok yang sama.
Mencapai fungsi yang maksimal dengan Kafka
Setiap server di cluster adalah broker dan berkolaborasi untuk mengatur proses distribusi aliran data. Untuk mencapai hasil yang maksimal, proses tersebut melibatkan infrastruktur jaringan dengan latency yang rendah dan bandwidth yang tinggi agar komunikasi antar broker aman. Selain itu, juga diperlukan desain yang baik antara producer dengan consumer dalam berkomunikasi dengan topic pada setiap partisi.
Kesimpulan untuk mencapai mafnaat yang maksimal dalam menggunakan Kafka harus diperhatikan hal dibawah ini;
- Infrastruktur yang baik.
- Kemampuan jaringan yang baik.
- Pemahaman yang baik dalam hal arsitetur kafka dan komponen yang terlibat didalamnya.
Membuat lingkungan kafka untuk pembelajaran
Lihat ke apendix docker compose untuk membuat lingkungan testing dalam mengikuti pembelajaran apache kafka.
Membuat kafka topic
Kita dapat menggunakan perintah kafka-topic.sh untuk mengatur topic pada kafka, termasuk dalam mebuat topic.
Code
./kafka-topic.sh
--create # (1)!
--topic swift.fin.incoming # (2)!
--partitions 1 # (3)!
--replication-factors 1 # (4)!
--bootstrap-server broker-1:19092
- Opsi untuk membuat topic
- Nama topic pada case ini adalah
swift.fin.incoming - Jumlah partisi yang dibuat pada topic ini hanya 1
- Tidak ada replikasi, artinya tidak ada fault tolerance
Topic
Aliran data diorganisir oleh topic, mirip seperti table pada Relational Database Management System, topic mengatur tipe data yang bervariasi. Data yang kompleks dapat tersebar dan dipecah ke beberapa topic yang berbeda.
Code
./kafa-topic.sh
--describe # menampilkan informasi dari topic atau topic-topic
--topic swift.fin.mt
--bootstrap-server broker-1:19092
Perintah diatas --describe berfungsi untuk menampilkan informasi dari topic (jika topic didefinisikan) atau semua topic.
{.sh title="Output"}
Topic: swift.fin.incoming TopicId: he-6I-1QTya530xX_gLb-g PartitionCount: 1 ReplicationFactor: 1 Configs: min.insync.replicas=1
Topic: swift.fin.incoming Partition: 0 Leader: 5 Replicas: 5 Isr: 5 Elr: LastKnownElr:
-
PartitionCount, memberikan informasi seberapa banyak partisi topic tersebut. Partisi berfungsi untuk mempararelkan dan menskalakan data dengan membuat producer dan consumer dapat menulis dan membaca dari atau ke partis-partisi yang berbeda secara serentak.
-
Replication Factor, menjelaskan seberapa banyak data disimpan berulang pada broker yang berbeda (umumnya). Pada contoh diatas data disimpan hanya pada broker-5.
Image

Broker bertanggung jawab untuk memproses dan menyimpan data pada kafka cluster. Sedangkan coordination cluster yang bertaggung jawab untuk mengatur broker-broker.
-
leader menggambarkan broker mana yang bertanggung jawab terhadap partisi.
-
replicas menunjukan pada broker mana partisi direplikasi. Pada contoh diatas karena
replication factordiatur dengan nilai1maka tidak ada replikasi, artinya hanya ada di broker leader 5. -
ERL (Eligable Replication Leader) menggambarkan calon leader yang akan menjadi leader ketika broker leader saat ini mati.
Dilapangan, kafka akan terdiri dari beberapa topic, kafka menyedikan opsi --list untuk menampilkan daftar topic pada cluster.
Code
Penekanan diatas, menggunakan bootstrap-server broker-1, akan tetapi tidak penting mengetahui broker mana yang mengatur topic tersebut. Maka dari itu, kita tidak harus menggunakan broker-1 dan meninggalkan broker-2 dan broker-3, kita dapat menggunakan salah satunya dan hasilnya akan menampilkan daftar topic yang sama.
Membuat pesan dan mengkonsumsi pesan
Sebagai simulasi, bukalah dua terminal yang akan digunakan untuk membuat console producer dan consumer. Console producer akan membuat pesan dan console consumer akan menerima pesan tersebut.
Code
Image

Dari contoh diatas kita dapat melihat bahwa tidak terlalu penting memikirkan topic tersebut ada dibroker yang mana.