Analisis prinsip pelaksanaan teras baris gilir mesej Kafka
1. Topik dan partition
Data dalam Kafka disimpan dalam topik, dan setiap topik boleh mempunyai berbilang partition. Partition ialah unit penyimpanan fizikal data dalam Kafka Setiap partition ialah fail log bebas, tersusun dan tidak boleh diubah. Pembahagian adalah kunci kepada daya pemprosesan tinggi Kafka dan ketersediaan tinggi kerana data boleh ditulis dan dibaca daripada partition berbeza secara selari.
2. Penerbit mesej
Pengeluar mesej (pengeluar) ialah pelanggan yang menghantar data ke topik Kafka. Pengeluar boleh menjadi sebarang aplikasi asalkan ia melaksanakan API pengeluar Kafka. API pengeluar membolehkan pengeluar menghantar data ke topik dan partition tertentu. Jika pengeluar tidak menyatakan partition, Kafka akan memilih satu secara automatik.
3. Mesej pengguna
Seorang pengguna mesej (pengguna) ialah pelanggan yang membaca data daripada topik Kafka. Pengguna boleh menjadi sebarang aplikasi selagi ia melaksanakan API pengguna Kafka. API pengguna membolehkan pengguna melanggan topik dan sekatan tertentu. Apabila pengguna melanggan topik, ia mula membaca data dari permulaan topik. Pengguna boleh membaca data secara selari kerana setiap pengguna boleh membaca data dari partition yang berbeza.
4. Storan mesej
Kafka menyimpan data pada cakera. Setiap partition ialah fail log bebas, dan fail log terdiri daripada berbilang segmen. Saiz setiap segmen ialah 1GB. Apabila segmen penuh, Kafka mencipta segmen baharu. Kafka secara berkala memampatkan segmen lama untuk menjimatkan ruang storan.
5. Replikasi mesej
Kafka memastikan kebolehpercayaan data melalui replikasi. Data setiap partition akan disalin ke beberapa replika. Replika boleh berada pada pelayan yang berbeza. Apabila satu replika gagal, replika lain boleh terus menyediakan perkhidmatan.
6. Penyerahan mesej
Apabila pengguna membaca data daripada Kafka, ia perlu menyerahkan (commit) kemajuan penggunaannya kepada Kafka. Operasi komit menyimpan kemajuan penggunaan pengguna ke dalam metadata Kafka. Metadata disimpan dalam ZooKeeper. Operasi komit memastikan pengguna tidak akan menggunakan data berulang kali.
7. Mesej mengimbangi
Setiap mesej mempunyai offset. Offset ialah pengecam unik yang mengenal pasti lokasi mesej dalam partition. Offset boleh digunakan untuk mengesan kemajuan penggunaan pengguna.
8. Kumpulan pengguna
Kumpulan pengguna ialah kumpulan pengguna yang logik. Pengguna dalam kumpulan pengguna boleh menggunakan data daripada topik yang sama secara selari. Apabila pengguna dalam satu kumpulan pengguna menggunakan data, pengguna dalam kumpulan pengguna lain tidak menggunakan data tersebut.
9. Pengimbangan beban
Kafka menggunakan pengimbangan beban untuk memastikan data diagihkan secara sama rata merentas sekatan yang berbeza. Pengimbang beban bertanggungjawab untuk mengedarkan data kepada partition yang berbeza. Pengimbang beban boleh mengedarkan data berdasarkan strategi yang berbeza, seperti pencincangan round-robin, rawak atau konsisten. Contoh Kod Ia boleh digunakan untuk membina pelbagai aplikasi, seperti pengumpulan log, analisis data, pemprosesan aliran masa nyata, dsb. Prinsip pelaksanaan teras Kafka termasuk topik, sekatan, pengeluar mesej, pengguna mesej, storan mesej, replikasi mesej, penyerahan mesej, pengimbangan mesej, kumpulan pengguna dan pengimbangan beban, dsb.
Atas ialah kandungan terperinci Menganalisis prinsip pelaksanaan utama baris gilir mesej Kafka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!