Apache Kafka

Tutorial Apache Kafka

Tutorial Apache Kafka
Dalam pelajaran ini, kita akan melihat bagaimana kita dapat menggunakan Apache Kafka dan apa gunanya. Kami akan melihat dengan teliti pelbagai istilah yang terlibat dengannya dan mula bekerjasama dengan mereka juga.

Apache Kafka

Untuk definisi peringkat tinggi, mari kita kemukakan definisi ringkas untuk Apache Kafka:

Apache Kafka adalah log komited yang diedarkan, bertolak ansur, dapat dilengkapkan secara mendatar.

Itu adalah beberapa kata tingkat tinggi mengenai Apache Kafka. Mari kita fahami konsep secara terperinci di sini.

Topik di Apache Kafka sama seperti barisan di mana mesej disimpan. Mesej ini disimpan untuk jangka waktu yang dapat dikonfigurasi dan mesej tidak akan dihapus sehingga waktu ini tercapai, walaupun ia telah dimakan oleh semua pengguna yang diketahui.

Kafka boleh diskalakan kerana pengguna yang sebenarnya menyimpan mesej apa yang diambil oleh mereka sebagai nilai 'offset'. Mari lihat tokoh untuk memahami perkara ini dengan lebih baik:

Bahagian topik dan Pengimbangan pengguna di Apache Kafka

Bermula dengan Apache Kafka

Untuk mula menggunakan Apache Kafka, ia mesti dipasang pada mesin. Untuk melakukan ini, baca Pasang Apache Kafka di Ubuntu.

Pastikan anda mempunyai pemasangan Kafka yang aktif jika anda ingin mencuba contoh yang kami sampaikan dalam pelajaran nanti.

Bagaimanakah ia berfungsi?

Dengan Kafka, yang Penerbit aplikasi menerbitkan mesej yang tiba di Kafka Node dan tidak terus kepada Pengguna. Dari Kafka Node ini, mesej digunakan oleh Pengguna aplikasi.

Pengeluar dan Pengguna Kafka


Oleh kerana satu topik dapat memperoleh banyak data sekaligus, untuk memastikan Kafka dapat ditingkatkan secara mendatar, setiap topik dibahagikan kepada partition dan setiap partisi boleh hidup di mana-mana mesin nod kluster. Mari kita cuba membentangkannya:

Pembahagian Topik


Sekali lagi, Kafka Broker tidak menyimpan rekod pengguna mana yang telah menggunakan berapa banyak paket data. Ia adalah tanggungjawab pengguna untuk memantau data yang telah digunakannya.

Ketekunan ke Cakera

Kafka tetap menyimpan rakaman mesej yang dikeluarkannya dari Producer pada cakera dan tidak menyimpannya dalam ingatan. Satu persoalan yang mungkin timbul adalah bagaimana hal ini membuat sesuatu dapat dilaksanakan dan cepat? Terdapat beberapa sebab di sebalik ini yang menjadikannya kaedah optimum dalam menguruskan rekod mesej:

Pembahagian & Replikasi Data

Ketika kita belajar di atas bahawa topik dibahagikan kepada partisi, setiap catatan mesej ditiru pada beberapa nod kluster untuk mengekalkan susunan dan data setiap catatan sekiranya salah satu node mati.

Walaupun partisi ditiru pada beberapa nod, masih ada a ketua partition simpul di mana aplikasi membaca dan menulis data mengenai topik tersebut dan pemimpin mereplikasi data pada nod lain, yang disebut sebagai pengikut partisi itu.

Sekiranya data rakaman mesej sangat penting bagi aplikasi, jaminan rekod mesej agar selamat di salah satu nod dapat ditingkatkan dengan meningkatkan faktor replikasi Kluster.

Apa itu Zookeeper?

Zookeeper adalah kedai nilai kunci yang bertoleransi dengan toleransi kesalahan. Apache Kafka sangat bergantung pada Zookeeper untuk menyimpan mekanik kluster seperti degup jantung, menyebarkan kemas kini / konfigurasi, dll).

Ini membolehkan broker Kafka melanggan dirinya sendiri dan mengetahui bila ada perubahan mengenai pemimpin partisi dan pengedaran nod telah berlaku.

Aplikasi pengeluar dan pengguna berkomunikasi secara langsung dengan Zookeeper aplikasi untuk mengetahui node mana yang menjadi pemimpin partisi untuk topik supaya mereka dapat melakukan pembacaan dan penulisan dari ketua partisi.

Penstriman

Pemproses Aliran adalah komponen utama dalam kluster Kafka yang mengambil aliran data rakaman mesej secara berterusan dari topik input, memproses data ini dan membuat aliran data ke topik keluaran yang boleh menjadi apa saja, dari sampah ke Pangkalan Data.

Sangat mungkin untuk melakukan pemprosesan sederhana secara langsung menggunakan API pengeluar / pengguna, walaupun untuk pemprosesan yang kompleks seperti menggabungkan aliran, Kafka menyediakan perpustakaan API Aliran bersepadu tetapi harap maklum bahawa API ini dimaksudkan untuk digunakan dalam pangkalan kode kita sendiri dan tidak ' t menjalankan broker. Ia berfungsi serupa dengan API pengguna dan membantu kami memperluas kerja pemprosesan aliran melalui beberapa aplikasi.

Bila hendak menggunakan Apache Kafka?

Seperti yang telah kita pelajari di bahagian-bahagian di atas, Apache Kafka dapat digunakan untuk menangani sejumlah besar catatan mesej yang dapat termasuk dalam sejumlah topik yang hampir tidak terbatas dalam sistem kami.

Apache Kafka adalah calon yang ideal ketika menggunakan perkhidmatan yang dapat memungkinkan kita mengikuti seni bina berdasarkan acara dalam aplikasi kita. Ini disebabkan oleh kemampuan ketekunan data, toleransi kesalahan dan seni bina yang sangat diedarkan di mana aplikasi kritikal boleh bergantung pada prestasinya.

Senibina Kafka yang berskala dan diedarkan menjadikan penyatuan dengan perkhidmatan mikro sangat mudah dan membolehkan aplikasi menyahpasang dirinya dengan banyak logik perniagaan.

Membuat Topik baru

Kita boleh membuat Topik ujian ujian pada pelayan Apache Kafka dengan arahan berikut:

Buat topik

sudo kafka-topik.sh --create --zookeeper localhost: 2181 --faktor penerapan 1
--partition 1 - ujian topik

Inilah yang kita dapat kembali dengan arahan ini:

Buat Topik Kafka Baru


Topik ujian akan dibuat yang dapat kami sahkan dengan perintah yang disebutkan:

Pengesahan pembuatan Topik Kafka

Menulis Mesej berdasarkan Topik

Seperti yang kita pelajari sebelumnya, salah satu API yang ada di Apache Kafka adalah API pengeluar. Kami akan menggunakan API ini untuk membuat mesej baru dan menerbitkan topik yang baru kami buat:

Menulis Mesej kepada Topik

sudo kafka-konsol-pengeluar.sh - localhost senarai broker: 9092 - ujian topik

Mari lihat output untuk arahan ini:

Terbitkan mesej ke Topik Kafka


Setelah kami menekan kekunci, kami akan melihat tanda anak panah (>) baru yang bermaksud kami dapat memasukkan data sekarang:

Menaip mesej


Cukup masukkan sesuatu dan tekan untuk memulakan baris baru. Saya menaip dalam 3 baris teks:

Membaca Mesej dari Topik

Sekarang setelah kami menerbitkan mesej mengenai Topik Kafka yang kami buat, mesej ini akan berada di sana untuk beberapa waktu yang dapat dikonfigurasi. Kita boleh membacanya sekarang menggunakan API Pengguna:

Membaca Mesej dari Topik

sudo kafka-konsol-pengguna.sh --zookeeper localhost: 2181 --
ujian topik - dari awal

Inilah yang kita dapat kembali dengan arahan ini:

Perintah untuk membaca Mesej dari Topik Kafka


Kami akan dapat melihat mesej atau baris yang kami tulis menggunakan API Producer seperti yang ditunjukkan di bawah:

Sekiranya kita menulis satu lagi mesej baru menggunakan Producer API, ia juga akan dipaparkan dengan serta-merta di bahagian Pengguna:

Terbitkan dan Penggunaan pada masa yang sama

Kesimpulannya

Dalam pelajaran ini, kami melihat bagaimana kami mula menggunakan Apache Kafka yang merupakan Broker Mesej yang sangat baik dan dapat bertindak sebagai unit ketekunan data khas juga.

Battle For Wesnoth 1.13.6 Pembangunan Dikeluarkan
Battle For Wesnoth 1.13.6 dilancarkan bulan lalu, adalah rilis pengembangan keenam di 1.13.siri x dan memberikan sejumlah penambahbaikan, terutamanya ...
Cara Memasang League Of Legends di Ubuntu 14.04
Sekiranya anda peminat League of Legends, maka ini adalah peluang bagi anda untuk menguji menjalankan League of Legends. Perhatikan bahawa LOL disokon...
Pasang permainan Strategi OpenRA terkini di Ubuntu Linux
OpenRA adalah mesin permainan Strategi Masa Nyata / Bebas yang mencipta semula permainan Westwood awal seperti Command & Conquer klasik: Makluman Mera...