Apache Kafka-Ayo Belajar apache kafka dari Awal!

Radema Panjaitan
4 min readNov 29, 2020

--

Kali ini saya akan membahas tentang apache kafka.Motivasi saya dalam membuat pembahasan tentang Apache kafka adalah baru-baru ini saya mempelajari materi Message Queues di sekolah saya pada mata kuliah pemograman sistem. Jadi salah satu bukti nyata dari pembelajaran saya ini adalah aplikasi apache kafka. Oleh karena itu saya ingin mendalami tentang apache kafka.

Pengenalan Apache kafka

Apache kafka adalah salah satu aplikasi message broker berbasis bahasa pemograman scala dan java yang sangat populer saat ini.
Pada dasarnya apache kafka adalah aplikasi a distributed streaming platform. Apache kafka merupakan sebuah publish dan subscribe messaging system.
Publish adalah proses untuk mengirim data sedangkan subscribe adalah proses menerima data.

Website dari apache kafka sendiri adalah https://kafka.apache.org/
Apache kafka pertama kali dibuat di likedlin dan aplikasi ini open source dan free.

Kenapa harus menggunakan apache kafka?
Kenapa tidak langsung mengirim data dari publish ke subscribe?

Sebelum menggunakan apache kafka
Sebelum menggunakan apache kafka

Dari gambar di atas prosedur ORDER mengirim data ke aplikasi ERP,FIANCE,LOGISTIC.Dan jika ORDER ingin mengirim datanya ke WAREHOUSE maka development perlu mengoding ulang untuk
menambahkan fitur baru dari ORDER ke WAREHOUSE. Sehingga membutuhkan waktu untuk developmet lagi.Jika beberapa aplikasi membutuhan data yang lebih banyak dari beberapa aplikasi lain maka digramnya akan ribet dan berantakan.

Maka solusi yang cocok adalah melakukan publish subscribe.

Setelah menggunakan apache kafka

Ditengah-tengah nya terdapat message broker yang digukanan untuk melakukan proses publish dan subscribe. yang mana aplikasi ORDER cukup mengirim datanya ke message broker maka message broker akan secara otomatis akan mengirim data ke aplikasi yang ingin memakai datanya.
Seperti yang kita lihat diagrammnya lebih simple.

Beberapa konsep yang harus dipahami sebelum memulai pembahasan terhadap topik ini.
1.Producer merupakan pihak yang mengirim data ke suatu topik.
2.Consumer merupakan pihak yang menerima data dari suatu topik dan mengelolah data-data dari topik tersebut.
Aplikasi bisa bertindak sebagai procedur sekaligus consumer secara bersamaan.
3.Topic adalah nama tepat menyimpanan data di kafka.
4.Partition merupakan pengelompokkan data topic yang dipecah menjadi bagian-bagian kecil. Misalnya, suatu topik menyimpan informasi user login, maka data-data pada topik dapat dibagi bedasarkan huruf awal dari username.
5. Replication adalah menduplikasi data partisi yang ada.
6. Consumer grup adalah mencakup serangkaian proses consumer yang suscribe topik tertentu.
7.Cluster merupakan kumpulan beberapa aplikasi kafka yang saling bekerjasama.
8. Offset merupakan sebuah unique identifier sebuah sebuah record dalam sebuah partisi.

Architektur Kafka
Hal-hal yang mendukung kafka
a.Stream Processor adalah data terus menerus mengalir, jadi ketika kita sekli subscribe data maka kita tidak tau kapan berhentinya.
B.Connector adalah integritasi tapi tidak aplikasi melainkan database. Miasalkan setiap perubahan data didatabase, datanya akan selalu dikirim ke kafka.
C.Kita akan install sebuah cluster. Cluster adalah dalah kumpulan beberapa aplikasi kafka. Kafka tidak akan bekerja sendiri. Jadi, cluster adalah kumpulan dari instance aplikasi atau node-node aplikasi kafka yang bekerja bersama. Nantinya, aplikasi kita yang berupa producer, consumer, connector dan stream processor akan connect ke dalam satu cluster yang sama.

Kafka Topic
Data disimpan di dalam topic dan data di topic tidak bisa diubah.
Producer akan mengirim pesan ke sebuah topik tertentu, dan Consumer akan membaca pesan yang dikirim ke sebuah topik.

Topic partition
Jika sebuah topic adalah sebuah file, jadi kita akan memecah filenya menjadi beberapa partisi.Tujuannya adalah agar lebih simple, karena jika semua datanya kita simpan dalam sebuah file maka data nya terlalu besar.
Maka file nya di pecah supaya lebih mudah mengaturnya.Saat kita bikin topic maka kita juga harus nentui jumlah pasrtisinya.
Dan pastikan jumlah partisinya lebih besar dari jumlah consumerya.Setiap pesan yang dipartisi memiliki id urutan unik yang disebut sebagai offset .

Replication
Lalu pesan tersebut akan dicopy ke node follower lain sesuai dengan jumlah follower.Hal ini dapat di atur menggunakan option replication factor. Options ini yang akan menentukan mau seberapa banyak partisi dalam sebuah topik direplika(dicopy dan didistribusikan ketempat lain). Dalam hal ini akan di distribusikan ke node follower

Consumer Group

Consumers adalah aplikasi atau proses atau apapun yang membaca pesan dari kafka broker. Sebuah consumer akan bisa mengidentifikasi pesan mana yang dibutuhkan lewat sebuah topik. Consumer akan mendaftarkan diri kedalam sebuah topik, maka jika sebuah pesan dikirimkan kedalam topik tersebut, consumer akan mendapatkan pesan yang sudah dikirimkan sebelumnya.
Consumer dapat bergabung dalam sebuah consumer group. Sebuah consumer adalah kumpulan dari beberapa consumer yang melakukan subscribe terhadap sebuah topik. Setiap consumer akan menerima pesan dari subset yang berbeda dalam sebuah topik. Sederhanaya, setiap consumer akan mendapatkan pesan yang berbeda beda. Jadi pesan yang dikirimkan oleh message broker akan diterima oleh persis 1 consumer saja. Kafka menjamin bahwa pesan akan hanya dibaca oleh singe consuumer dalam sebuah grup.

Referensi :

- (194) Belajar Kafka — 1 Apa itu Apache Kafka — YouTube
- Big Data Messaging dengan Apache Kafka — MTI (binus.ac.id)
- Introduction to Kafka. Dalam pembahasan kali ini, kita akan… | by Tulus Tobing | Medium

Sampai jumpa di-part berikutnya!

Semangat Belajar

--

--