Berbagi teknologi

Pengurangan diagram komponen dasar Kafka

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Pialang Pengendali

Masukkan deskripsi gambar di sini

Terdapat Broker Pengontrol di cluster Kafka, yang bertanggung jawab atas manajemen dan koordinasi metadata.

Kafka menggunakan Zookeeper sebagai alat penyimpanan dan manajemen untuk metadata cluster. Zookeeper menyimpan informasi status cluster, termasuk semua informasi Topik, partisi, Pemimpin dan replika, dll.

Ketika status cluster berubah, Controller Broker akan menulis informasi perubahan ke Zookeeper.

Ketika Broker Pengontrol saat ini gagal, Broker lain di cluster Kafka akan mendeteksi situasi ini dan melakukan pemilihan melalui Zookeeper.

Setelah Broker berhasil terpilih sebagai Broker Pengendali baru, Broker tersebut akan membaca metadata cluster terbaru dari Zookeeper.

Mekanisme jaminan

  • Metadata yang persisten: Zookeeper terus-menerus menyimpan metadata cluster, memastikan bahwa informasi status terbaru dapat diperoleh kapan saja.
  • mekanisme detak jantung: Koneksi antara Broker dan Zookeeper dipertahankan melalui mekanisme detak jantung untuk mendeteksi kegagalan Controller Broker dengan cepat.
  • mekanisme pemilu: Melalui mekanisme pemilihan Zookeeper, Broker Pengendali baru dapat dipilih dengan cepat dan metadata dapat disinkronkan dari Zookeeper.

2. Arsitektur komponen

Masukkan deskripsi gambar di sini

1. Manajer Log

LogManagerBertanggung jawab terutama untuk mengelola penyimpanan dan pengambilan log (log) Kafka.

Misalnya: produser mengirimkan pesan ke Leader Broker1 dari Partition0.LogManagerTulis pesan ke file log Partition0 di Broker1.

2. Manajer Replikasi

ReplicationManagerTerutama bertanggung jawab untuk mengelola replikasi dan sinkronisasi data partisi.

Sinkronisasi antara Leader dan Follower masing-masing partisi dilakukan secara mandiri. Artinya, setiap partisi memiliki proses sinkronisasi tersendiri dan tidak bergantung pada partisi lain.

Meskipun proses sinkronisasi setiap partisi bersifat independen, setiap Broker akan memulai thread replikasi yang sesuai untuk setiap partisi yang dikelolanya (baik Leader atau Follower), dan thread ini bertanggung jawab untuk menangani tugas sinkronisasi tertentu.

Misalnya:ReplicationManagerDorong pesan yang baru ditulis di Broker1 ke Follower Broker2 dan Broker3 dari Partition0.ReplicationManagerPermintaan replikasi yang diterima dari Broker1 diproses di Broker2 dan Broker3, menulis pesan ke file log masing-masing.

3. Soket Server

SocketServer Ini adalah komponen di Kafka Broker dan bertanggung jawab menangani koneksi jaringan dan operasi I/O. Ia bertanggung jawab untuk menerima permintaan koneksi dari klien dan Broker lain, dan menetapkan thread ke setiap koneksi untuk diproses.

4. JaringanServer

NetworkServer Ini adalah bagian inti dari kerangka komunikasi jaringan Kafka dan bertanggung jawab untuk mengelola dan menjadwalkan permintaan jaringan. Ia menggunakan NIO (non-blocking I/O) untuk menangani koneksi jaringan yang sangat bersamaan.

5. Klien ZK

Komponen yang berkomunikasi dengan Zookeeper.