Apache Kafka - Pendahuluan
Di Big Data, volume data yang sangat besar digunakan. Terkait data, ada dua tantangan utama, tantangan pertama adalah bagaimana mengumpulkan data dalam jumlah besar dan tantangan kedua adalah menganalisis data yang dikumpulkan. Untuk mengatasi tantangan tersebut, Anda harus membutuhkan sistem pesan.
Kafka dirancang untuk sistem throughput tinggi terdistribusi. Kafka cenderung bekerja dengan sangat baik sebagai pengganti broker pesan yang lebih tradisional. Dibandingkan dengan sistem perpesanan lain, Kafka memiliki throughput yang lebih baik, partisi bawaan, replikasi, dan toleransi kesalahan yang melekat, yang membuatnya cocok untuk aplikasi pemrosesan pesan berskala besar.
Apa itu Sistem Pesan?
Sistem Pesan bertanggung jawab untuk mentransfer data dari satu aplikasi ke aplikasi lainnya, sehingga aplikasi dapat fokus pada data, tetapi tidak khawatir tentang cara membagikannya. Pesan terdistribusi didasarkan pada konsep antrian pesan yang andal. Pesan antri secara asinkron antara aplikasi klien dan sistem perpesanan. Tersedia dua jenis pola perpesanan - yang satu mengarah ke titik dan yang lainnya adalah sistem perpesanan publish-subscribe (pub-sub). Sebagian besar pola pesan mengikutipub-sub.
Point to Point Messaging System
Dalam sistem point-to-point, pesan disimpan dalam antrian. Satu atau lebih konsumen dapat menggunakan pesan dalam antrian, tetapi pesan tertentu hanya dapat dikonsumsi oleh satu konsumen. Setelah konsumen membaca pesan di antrean, pesan tersebut menghilang dari antrean itu. Contoh tipikal dari sistem ini adalah Sistem Pemrosesan Pesanan, di mana setiap pesanan akan diproses oleh satu Pemroses Pesanan, tetapi Pemroses Pesanan Ganda dapat bekerja juga pada saat yang sama. Diagram berikut menggambarkan strukturnya.
Terbitkan-Berlangganan Sistem Pesan
Dalam sistem terbitkan-langganan, pesan disimpan dalam satu topik. Tidak seperti sistem point-to-point, konsumen dapat berlangganan satu atau lebih topik dan mengkonsumsi semua pesan dalam topik itu. Dalam sistem Publish-Subscribe, produsen pesan disebut penerbit dan konsumen pesan disebut pelanggan. Contoh kehidupan nyata adalah Dish TV, yang menerbitkan saluran berbeda seperti olahraga, film, musik, dll., Dan siapa pun dapat berlangganan ke saluran mereka sendiri dan mendapatkannya setiap kali saluran langganan mereka tersedia.
Apa Kafka?
Apache Kafka adalah sistem perpesanan terbitkan-langganan terdistribusi dan antrean yang kuat yang dapat menangani data dalam jumlah besar dan memungkinkan Anda untuk meneruskan pesan dari satu titik akhir ke titik akhir lainnya. Kafka cocok untuk konsumsi pesan offline dan online. Pesan Kafka disimpan di disk dan direplikasi di dalam cluster untuk mencegah kehilangan data. Kafka dibangun di atas layanan sinkronisasi Zookeeper. Ini terintegrasi dengan sangat baik dengan Apache Storm dan Spark untuk analisis data streaming waktu nyata.
Manfaat
Berikut adalah beberapa manfaat Kafka -
Reliability - Kafka didistribusikan, dipartisi, direplikasi dan toleransi kesalahan.
Scalability - Sistem pesan Kafka dapat diskalakan dengan mudah tanpa waktu henti ..
Durability- Kafka menggunakan
log komit Terdistribusi
yang berarti pesan tetap ada di disk secepat mungkin, sehingga tahan lama ..Performance- Kafka memiliki throughput tinggi untuk menerbitkan dan berlangganan pesan. Ini mempertahankan kinerja yang stabil bahkan banyak TB pesan disimpan.
Kafka sangat cepat dan menjamin nol waktu henti dan tidak ada kehilangan data.
Gunakan Kasus
Kafka dapat digunakan di banyak Kasus Penggunaan. Beberapa dari mereka tercantum di bawah -
Metrics- Kafka sering digunakan untuk data monitoring operasional. Ini melibatkan statistik agregat dari aplikasi terdistribusi untuk menghasilkan umpan data operasional terpusat.
Log Aggregation Solution - Kafka dapat digunakan di seluruh organisasi untuk mengumpulkan log dari berbagai layanan dan membuatnya tersedia dalam format standar untuk beberapa konsumen.
Stream Processing- Kerangka kerja populer seperti Storm dan Spark Streaming membaca data dari suatu topik, memprosesnya, dan menulis data yang diproses ke topik baru yang akan tersedia untuk pengguna dan aplikasi. Daya tahan Kafka yang kuat juga sangat berguna dalam konteks pemrosesan aliran.
Kebutuhan Kafka
Kafka adalah platform terpadu untuk menangani semua data feed waktu nyata. Kafka mendukung pengiriman pesan berlatensi rendah dan memberikan jaminan untuk toleransi kesalahan jika terjadi kegagalan mesin. Ia memiliki kemampuan untuk menangani sejumlah besar konsumen yang beragam. Kafka sangat cepat, melakukan 2 juta tulis / detik. Kafka menyimpan semua data ke disk, yang pada dasarnya berarti bahwa semua penulisan masuk ke cache halaman OS (RAM). Ini membuatnya sangat efisien untuk mentransfer data dari cache halaman ke soket jaringan.