Apache Kafka

Tutorial Apache Kafka

Tutorial Apache Kafka
Dalam pelajaran ini, kita akan melihat bagaimana kita dapat menggunakan Apache Kafka dan apa kegunaannya. Kami akan benar-benar melihat berbagai terminologi yang terlibat dengannya dan mulai bekerja dengan mereka juga.

Apache Kafka

Untuk definisi tingkat tinggi, izinkan kami menyajikan definisi singkat untuk Apache Kafka:

Apache Kafka adalah log komit yang terdistribusi, toleran terhadap kesalahan, dapat diskalakan secara horizontal.

Itu adalah beberapa kata tingkat tinggi tentang Apache Kafka. Mari kita memahami konsep secara rinci di sini.

Topik di Apache Kafka seperti antrian tempat pesan disimpan. Pesan-pesan ini disimpan untuk waktu yang dapat dikonfigurasi dan pesan tidak akan dihapus sampai waktu ini tercapai, bahkan jika telah dikonsumsi oleh semua konsumen yang dikenal.

Kafka dapat diskalakan karena konsumenlah yang benar-benar menyimpan bahwa pesan apa yang diambil oleh mereka terakhir sebagai nilai 'offset'. Mari kita lihat gambar untuk memahami ini dengan lebih baik:

Partisi topik dan offset Konsumen di Apache Kafka

Memulai dengan Apache Kafka

Untuk mulai menggunakan Apache Kafka, itu harus diinstal pada mesin. Untuk melakukan ini, baca Instal Apache Kafka di Ubuntu.

Pastikan Anda memiliki instalasi Kafka yang aktif jika Anda ingin mencoba contoh yang kami sajikan nanti dalam pelajaran.

bagaimana cara kerjanya?

Dengan Kafka, Produsen aplikasi diterbitkan pesan yang tiba di Kafka simpul dan tidak langsung ke Konsumen. Dari Node Kafka ini, pesan dikonsumsi oleh Konsumen aplikasi.

Kafka Produsen dan Konsumen and


Karena satu topik bisa mendapatkan banyak data sekaligus, agar Kafka dapat diskalakan secara horizontal, setiap topik dibagi menjadi partisi dan setiap partisi dapat hidup di mesin node mana pun dari sebuah cluster. Mari kita coba menyajikannya:

Partisi Topik


Sekali lagi, Kafka Broker tidak mencatat konsumen mana yang telah mengkonsumsi berapa banyak paket data. Ini adalah tanggung jawab konsumen untuk melacak data yang telah dikonsumsi.

Kegigihan ke Disk

Kafka mempertahankan catatan pesan yang didapatnya dari Produser di disk dan tidak menyimpannya di memori. Sebuah pertanyaan yang mungkin muncul adalah bagaimana ini membuat segala sesuatunya menjadi layak dan cepat? Ada beberapa alasan di balik ini yang menjadikannya cara yang optimal untuk mengelola catatan pesan:

Distribusi & Replikasi Data

Seperti yang kita pelajari di atas bahwa topik dibagi menjadi beberapa partisi, setiap record pesan direplikasi pada beberapa node cluster untuk menjaga urutan dan data setiap record jika salah satu node mati.

Meskipun sebuah partisi direplikasi pada beberapa node, masih ada pemimpin partisi node di mana aplikasi membaca dan menulis data pada topik dan pemimpin mereplikasi data pada node lain, yang disebut sebagai pengikut dari partisi itu.

Jika data record pesan sangat penting bagi suatu aplikasi, jaminan keamanan record pesan di salah satu node dapat ditingkatkan dengan meningkatkan faktor replikasi dari Cluster.

Apa itu penjaga kebun binatang??

Zookeeper adalah toko nilai kunci terdistribusi yang sangat toleran terhadap kesalahan. Apache Kafka sangat bergantung pada Zookeeper untuk menyimpan mekanisme cluster seperti detak jantung, mendistribusikan pembaruan/konfigurasi, dll).

Ini memungkinkan pialang Kafka untuk berlangganan sendiri dan mengetahui setiap kali ada perubahan mengenai pemimpin partisi dan distribusi node telah terjadi.

Aplikasi Produser dan Konsumen berkomunikasi langsung dengan Zookeeper aplikasi untuk mengetahui node mana yang merupakan pemimpin partisi untuk suatu topik sehingga mereka dapat melakukan membaca dan menulis dari pemimpin partisi.

Streaming

Stream Processor adalah komponen utama dalam klaster Kafka yang mengambil aliran data rekaman pesan secara terus-menerus dari topik input, memproses data ini dan membuat aliran data ke topik keluaran yang dapat berupa apa saja, dari sampah hingga Database.

Sangat mungkin untuk melakukan pemrosesan sederhana secara langsung menggunakan API produsen/konsumen, meskipun untuk pemrosesan kompleks seperti menggabungkan aliran, Kafka menyediakan perpustakaan Streams API terintegrasi tetapi harap dicatat bahwa API ini dimaksudkan untuk digunakan dalam basis kode kita sendiri dan tidak t dijalankan di broker. Ini bekerja mirip dengan API konsumen dan membantu kami meningkatkan pekerjaan pemrosesan aliran di beberapa aplikasi.

Kapan menggunakan Apache Kafka?

Seperti yang kita pelajari di bagian di atas, Apache Kafka dapat digunakan untuk menangani sejumlah besar catatan pesan yang dapat dimiliki oleh topik dalam jumlah yang hampir tak terbatas di sistem kami.

Apache Kafka adalah kandidat ideal dalam hal menggunakan layanan yang memungkinkan kita untuk mengikuti arsitektur yang digerakkan oleh peristiwa dalam aplikasi kita. Hal ini karena kemampuannya dalam persistensi data, toleransi kesalahan, dan arsitektur yang sangat terdistribusi di mana aplikasi penting dapat mengandalkan kinerjanya.

Arsitektur Kafka yang skalabel dan terdistribusi membuat integrasi dengan layanan mikro menjadi sangat mudah dan memungkinkan aplikasi untuk memisahkan dirinya dengan banyak logika bisnis.

Membuat Topik baru

Kita dapat membuat Topik pengujian pengujian di server Apache Kafka dengan perintah berikut:

Membuat Topik

sudo kafka-topik.sh --create --zookeeper localhost:2181 --replication-factor 1
--partisi 1 --pengujian topik

Inilah yang kami dapatkan kembali dengan perintah ini:

Buat Topik Kafka Baru


Topik pengujian akan dibuat yang dapat kami konfirmasi dengan perintah yang disebutkan:

Konfirmasi pembuatan topik Kafka

Menulis Pesan pada Topik

Seperti yang kita pelajari sebelumnya, salah satu API yang ada di Apache Kafka adalah is API Produser. Kami akan menggunakan API ini untuk membuat pesan baru dan mempublikasikan topik yang baru saja kami buat:

Menulis Pesan ke Topik

Sudo kafka-konsol-produser.sh --broker-list localhost:9092 --pengujian topik

Mari kita lihat output untuk perintah ini:

Publikasikan pesan ke Topik Kafka


Setelah kita menekan tombol, kita akan melihat tanda panah baru (>) yang berarti kita bisa keluar data sekarang:

Mengetik pesan


Cukup ketik sesuatu dan tekan untuk memulai baris baru. Saya mengetik 3 baris teks:

Membaca Pesan dari Topik

Sekarang kami telah menerbitkan pesan tentang Topik Kafka yang kami buat, pesan ini akan ada di sana untuk beberapa waktu yang dapat dikonfigurasi. Kita bisa membacanya sekarang menggunakan using API Konsumen:

Membaca Pesan dari Topik

sudo kafka-konsol-konsumen.sh --zookeeper localhost:2181 --
pengujian topik --dari awal

Inilah yang kami dapatkan kembali dengan perintah ini:

Perintah untuk membaca Pesan dari Topik Kafka


Kita akan dapat melihat pesan atau baris yang telah kita tulis menggunakan Producer API seperti gambar di bawah ini:

Jika kita menulis pesan baru lainnya menggunakan Producer API, pesan tersebut juga akan langsung ditampilkan di sisi Konsumen:

Publikasikan dan Konsumsi secara bersamaan

Kesimpulan

Dalam pelajaran ini, kita melihat bagaimana kita mulai menggunakan Apache Kafka yang merupakan Pialang Pesan yang sangat baik dan juga dapat bertindak sebagai unit persistensi data khusus.

Cara Mengganti Tombol Kiri & Kanan Mouse di PC Windows 10
Sudah menjadi hal biasa bahwa semua perangkat mouse komputer dirancang secara ergonomis untuk pengguna yang tidak kidal. Tetapi ada perangkat mouse ya...
Tiru klik Mouse dengan mengarahkan mouse menggunakan Clickless Mouse di Windows 10
Menggunakan mouse atau keyboard dalam posisi yang salah dari penggunaan yang berlebihan dapat menyebabkan banyak masalah kesehatan, termasuk keteganga...
Tambahkan gerakan Mouse ke Windows 10 menggunakan alat gratis ini
Dalam beberapa tahun terakhir, komputer dan sistem operasi telah berkembang pesat. Ada saat ketika pengguna harus menggunakan perintah untuk menavigas...