Cara Kerja Kafka Single Partisi, Banyak Consumer: Ilustrasi Kode Python

Subscribe dengan Account Google untuk mendapatkan News Letter terbaru dari Halovina !
Cara Kerja Kafka Single Partisi, Banyak Consumer: Ilustrasi Kode Python
Informa Harmon Bangku - Putih

Informa Harmon Bangku - Putih

Hadirkan bangku ottoman Harmon persembahan dari Informa ini untuk membuat tampilan ruangan di hunian Anda lebih menawan. Selain untuk duduk, bangku ini juga dapat digunakan sebagai meja dengan tempat penyimpanan (jika dibalik). Hadir dalam warna putih yang netral sehingga dapat dipadupadankan dengan ragam perabotan di ruangan Anda.

Free Klik Disini !

Pernah denger soal Kafka?

Kafka di dunia backend itu kayak platform nge-gosip super cepat dan terorganisir buat data.

Nah, kali ini kita bakal bedah tuntas gimana sih Kafka bekerja kalau datanya cuma masuk ke satu "gudang" (partisi) tapi banyak banget "akun kepo" (consumer) yang pengen ngintip.

Penasaran?


Dalam Kafka, partisi adalah unit dasar paralelisasi dalam sebuah topik.


Ketika sebuah topik memiliki satu partisi, semua pesan untuk topik tersebut akan disimpan dalam urutan tertentu di partisi tunggal ini.

example kafka desain by halovina


Cara Kerja dengan 1 Partisi dan Multiple Consumer:


(1) Producer


Producer mengirimkan pesan ke topik Kafka. Karena hanya ada satu partisi, semua pesan akan masuk ke partisi ini secara berurutan.


(2) Consumer Group


Consumer dalam Kafka selalu tergabung dalam sebuah consumer group. Kafka memastikan bahwa setiap pesan dalam sebuah partisi hanya dikonsumsi oleh satu consumer dalam setiap consumer group.


(3) Multiple Consumer (dalam grup yang berbeda)


Jika Anda memiliki beberapa consumer yang tergabung dalam grup konsumen yang berbeda, setiap grup akan membaca semua pesan dari partisi tunggal secara independen.


Setiap consumer dalam grupnya akan melacak offset (posisi terakhir pesan yang telah dibaca) masing-masing.


(4) Multiple Consumer (dalam grup yang sama)


Jika Anda memiliki beberapa consumer yang tergabung dalam grup konsumen yang sama, Kafka akan mencoba menyeimbangkan beban konsumsi di antara consumer tersebut.


Namun, karena hanya ada satu partisi, hanya satu consumer dalam grup tersebut yang akan aktif membaca pesan dari partisi tersebut pada satu waktu.


Consumer lain dalam grup yang sama akan menjadi idle (tidak aktif membaca).


Ini karena Kafka menjamin urutan pesan dalam sebuah partisi dan tidak ingin dua consumer dalam grup yang sama membaca pesan yang sama secara bersamaan dan berpotensi memprosesnya di luar urutan.

Bayangin Gini Deh: Satu Jalur Kereta, Banyak Penumpang dengan Tujuan Beda


Anggap aja data di Kafka itu kayak barang yang lagi diangkut di jalur kereta. Kalau cuma ada satu jalur (single partisi), semua barang pasti lewat situ.


Sekarang, bayangin ada beberapa kelompok penumpang (consumer group) yang nungguin barang ini di stasiun yang berbeda.


(1) Kelompok 1 


Ada dua orang temen (dua consumer) yang tergabung dalam satu geng (consumer group 1).


Mereka berdua pengen tau semua info yang lewat.


Tapi, karena cuma ada satu jalur kereta, mereka harus bagi-bagi tugas atau salah satunya nunggu giliran buat ngeliat barangnya.


Intinya, dalam satu geng, cuma satu orang yang bisa "ngambil" satu barang dalam satu waktu dari jalur itu. Biar apa? Biar nggak rebutan dan infonya tetap urut!


(2) Kelompok 2 


Nah, ada lagi satu orang (satu consumer) yang sendirian tapi juga pengen tau semua info (consumer group 2).


Karena dia sendiri di gengnya, yaudah deh, dia bebas-bebas aja ngambilin semua barang yang lewat jalur kereta itu.


Setiap geng itu independen!


Jadi, info yang udah diliat geng 1, tetep bisa diliat lagi sama geng 2.

Kenapa Cuma Satu Jalur Kalo Banyak yang Kepo?


Mungkin lo bertanya-tanya, kenapa nggak dibikin banyak jalur aja biar semua bisa langsung dapet info?


Nah, satu partisi ini biasanya dipake kalau urutan data itu super penting. Bayangin kayak timeline di sosmed, lo pasti pengen liat postingan dari yang paling baru, kan?


Kafka dengan satu partisi menjamin urutan data tetap terjaga.


Penasaran bagaimana sample codenya di bahasa python, baca selengkapnya di sinihttps://medium.com/@alfininfo/how-kafka-single-partition-multiple-consumers-works-python-code-illustration-9db5455345a8

Baca artikel lainya :