Apache Kafka

Apa itu Apache Kafka dan bagaimana ia berfungsi?

Apa itu Apache Kafka dan bagaimana ia berfungsi?

Dalam pelajaran ini, kita akan melihat apa itu Apache Kafka dan bagaimana ia berfungsi bersama dengan beberapa kes penggunaan yang paling biasa.  Apache Kafka pada mulanya dikembangkan di LinkedIn pada tahun 2010 dan berpindah menjadi projek Apache peringkat tertinggi pada tahun 2012. Ia mempunyai tiga komponen utama:

Kami akan mengkaji lebih banyak konsep Kafka di bahagian yang akan datang. Mari maju.

Konsep Apache Kafka

Sebelum kita menggali lebih mendalam, kita perlu meneliti beberapa konsep dalam Apache Kafka. Inilah syarat-syarat yang harus kita ketahui, secara ringkas:

Pembahagian Topik

Konsep untuk Topik, Partisi Topik dan ofset juga dapat dijelaskan dengan gambaran:

Bahagian topik dan Pengimbangan pengguna di Apache Kafka

Apache Kafka sebagai sistem pesanan Publish-subscribe

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

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.

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. Oleh kerana Kafka tidak memantau pengakuan dan pesanan setiap aplikasi pengguna, ia dapat menguruskan lebih banyak pengguna dengan kesan yang tidak dapat diabaikan pada throughput. Dalam pengeluaran, banyak aplikasi bahkan mengikuti pola konsumen batch, yang bermaksud bahawa pengguna menggunakan semua pesan dalam antrian pada selang waktu yang tetap.

Pemasangan

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

Kes Penggunaan: Penjejakan Penggunaan Laman Web

Kafka adalah alat yang sangat baik untuk digunakan ketika kita perlu mengesan aktiviti di laman web. Data penjejakan merangkumi dan tidak terhad pada paparan halaman, carian, muat naik atau tindakan lain yang mungkin dilakukan oleh pengguna. Ketika pengguna berada di laman web, pengguna mungkin melakukan sejumlah tindakan ketika dia melayari laman web.

Sebagai contoh, apabila pengguna baru mendaftar di laman web, aktiviti tersebut mungkin akan dilacak dalam urutan apa pengguna baru meneroka ciri-ciri laman web, jika pengguna menetapkan profil mereka seperti yang diperlukan atau lebih suka langsung menggunakan ciri-ciri laman web. Setiap kali pengguna mengklik butang, metadata untuk butang tersebut dikumpulkan dalam paket data dan dikirimkan ke kluster Kafka dari mana perkhidmatan analisis untuk aplikasi dapat mengumpulkan data ini dan menghasilkan wawasan berguna mengenai data yang berkaitan. Sekiranya kita ingin membahagikan tugas menjadi beberapa langkah, berikut adalah bagaimana prosesnya akan kelihatan seperti:

  1. Seorang pengguna mendaftar di laman web dan memasuki papan pemuka. Pengguna cuba mengakses ciri secara langsung dengan berinteraksi dengan butang.
  2. Aplikasi web membina mesej dengan metadata ini ke partisi topik topik "klik".
  3. Mesej ditambahkan ke log komit dan offset meningkat
  4. Pengguna kini boleh menarik mesej dari Kafka Broker dan menunjukkan penggunaan laman web secara real-time dan menunjukkan data masa lalu jika ia menetapkan semula offsetnya ke nilai masa lalu yang mungkin

Guna Kes: Antrian Mesej

Apache Kafka adalah alat yang sangat baik yang boleh bertindak sebagai pengganti alat broker mesej seperti RabbitMQ. Pemesejan tak segerak membantu mencabut aplikasi dan membuat sistem yang sangat berskala.

Sama seperti konsep perkhidmatan mikro, alih-alih membangun satu aplikasi besar, kita dapat membagi aplikasi menjadi beberapa bahagian dan setiap bahagian mempunyai tanggungjawab yang sangat spesifik. Dengan cara ini, bahagian yang berbeza dapat ditulis dalam bahasa pengaturcaraan yang sepenuhnya bebas! Kafka mempunyai sistem partisi, replikasi, dan toleransi kesalahan yang ada di dalamnya yang menjadikannya baik sebagai sistem broker pesanan berskala besar.

Baru-baru ini, Kafka juga dilihat sebagai penyelesaian pengumpulan log yang sangat baik yang dapat menguruskan broker pelayan pengumpulan fail log dan menyediakan fail-fail ini ke sistem pusat. Dengan Kafka, adalah mungkin untuk menjana sebarang acara yang anda ingin tahu mengenai bahagian lain dari aplikasi anda.

Menggunakan Kafka di LinkedIn

Sangat menarik untuk diperhatikan bahawa Apache Kafka sebelumnya dilihat dan digunakan sebagai cara bagaimana saluran data dapat dibuat konsisten dan melalui mana data dimasukkan ke Hadoop. Kafka berfungsi dengan baik ketika terdapat banyak sumber dan destinasi data dan menyediakan proses saluran paip yang terpisah untuk setiap kombinasi sumber dan destinasi tidak mungkin. Arkitek Kafka LinkedIn, Jay Kreps menerangkan masalah biasa ini dalam catatan blog:

Penglibatan saya sendiri dalam ini bermula sekitar tahun 2008 setelah kami menghantar kedai nilai kunci kami. Projek saya yang seterusnya adalah untuk mencuba penyediaan Hadoop yang berfungsi, dan memindahkan beberapa proses cadangan kami ke sana. Mempunyai sedikit pengalaman dalam bidang ini, secara semula jadi kami menganggarkan beberapa minggu untuk mendapatkan data masuk dan keluar, dan sisa masa kami untuk melaksanakan algoritma ramalan. Maka bermulalah slogan yang panjang.

Apache Kafka dan Flume

Sekiranya anda memilih untuk membandingkan kedua-duanya berdasarkan fungsinya, anda akan menemui banyak ciri umum. Berikut adalah beberapa daripadanya:

Kesimpulannya

Dalam pelajaran ini, kami melihat banyak konsep mengenai Apache Kafka. Baca lebih banyak catatan berdasarkan Kafka di sini.

Kajian Tetikus Tanpa Wayar Microsoft Sculpt Touch
Saya baru-baru ini membaca mengenai Sentuhan Microsoft Sculpt tetikus tanpa wayar dan memutuskan untuk membelinya. Setelah menggunakannya sebentar, sa...
Trackpad dan Mouse Pointer pada skrin Windows AppyMouse untuk Tablet Windows
Pengguna tablet sering kehilangan penunjuk tetikus, terutama ketika mereka biasa menggunakan komputer riba. Telefon pintar dan tablet skrin sentuh dil...
Butang tetikus tengah tidak berfungsi pada Windows 10
The butang tetikus tengah membantu anda menelusuri halaman web dan skrin yang panjang dengan banyak data. Sekiranya ia berhenti, anda akan menggunakan...