Kafka
adalah platform streamer yang membuat jaringan pipeline data secara realtime
yang mempunyai kemampuan publish dan subcribe record data atau antrian pesan.
Platform tersebut bertindak sebagai platform terpadu untuk menangani semua
umpan data realtime. Umumnya kafka digunakan untuk membangun sistem streamer
realtime antara data sistem dan aplikasi ataupun aplikasi streamming yang
bereaksi terhadap arus data.
Installasi
dijelaskan cukup lengkap di http://kafka.apache.org/quickstart
termasuk cara menjalankan server zookeepers dan server kafkanya sendiri. Untuk konfigurasi
bisa dilihat di folder config yang editable. Selanjutnya kita harus membuat
topic yang digunakan untuk menampung record baik yang di produce ataupun di
consume.
Kafka
mendukung bahasa pemprograman java untuk mengakses server dengan konfigurasi
sederhana. Langkah selanjutnya adalah setting di java(maven project) dengan
menambahkan dependency kafka client, tambahkan code dibawah pada file pom:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>1.0.1</version>
</dependency>
Setelah itu
tinggal kita atur konfigurasi untuk sent dan receive di service java. Code untuk
mem-produce pesan nya kurang lebih seperti dibawah:
Ketika
service sent di hit(via postman, controller code dibawah), akan membaca
parameter loop, dan jika kita lihat consume di topic1 akan terlihat seperti
gambar 1. Pesan tersebut sudah ter-streamming di server kafka, dan dapat di
consume oleh banyak client dengan menggunakan topic yang sama. Untuk konfigurasi
karena kafka saya jalankan di local, maka pada producer configuration
menggunakan ip local 127.0.0.1. jika kafka dijalankan di server, maka tinggal
diganti hostnya. Dalam sekali kirim kafka hanya memakan waktu 10ms secara
asynchronous.
Gambar 1. Output consume topic1
Untuk yang
consume streammer dari kafka, codenya seperti dibawah. Konfigurasi server sama-sama
menggunakan server localhost, dan yang penting diketahui adalah konfigurasi
group id si consumer yang dapat dilihat di consumer.properties harus sama
dengan yang kita set. Consumer.poll akan “fetch” data sebanyak 300x dari si
producer.
ketika kita hit recieve service, dan memasukan pesan via
terminal kafka, pesan tersebut akan di-return seperti gambar 2.
Gambar 2. Contoh konsume dari streammer kafka
Nah, cukup
jelas bukan? Aplikasi dari streaming kafka ini cukup luas, seperti untuk
analisis data realtime dan membutuhkan decision yang harus ditentukan saat itu
juga, maka dengan service di java dapat menjadi solusi permasalahan tersebut. Selain
service di java, streamer kafka juga dapat menerima dan mengirim data ke streamer
lain seperti OSA(Oracle Streammer Analytic).
Happy Sunday :)
Happy Sunday :)
No comments:
Post a Comment