Apache Kafka

Partisi Apache Kafka

Partisi Apache Kafka
Dalam pelajaran ini, kita akan melihat apa yang dimaksud dengan Partisi di Apache Kafka dan bagaimana pengaruhnya terhadap kinerja cluster Kafka. Konsep partisi merupakan inti dari cluster Kafka karena menggunakan partisi sebagai cara utama untuk menskalakan dan meningkatkan kinerja.

Harap dicatat bahwa ini bukan pelajaran pengantar. Silakan baca Apa itu Apache Kafka dan bagaimana cara kerjanya sebelum Anda melanjutkan pelajaran ini untuk mendapatkan wawasan yang lebih dalam.

Topik dalam Kafka

Topik di Kafka adalah sesuatu di mana pesan dikirim. Aplikasi konsumen yang tertarik pada topik itu menarik pesan di dalam topik itu dan dapat melakukan apa saja dengan data itu. Hingga waktu tertentu, sejumlah aplikasi konsumen dapat menarik pesan ini beberapa kali.

Pertimbangkan Topik seperti halaman Blog Ubuntu LinuxHint. Pelajaran disimpan sampai selamanya dan sejumlah pembaca yang antusias dapat datang dan membaca pelajaran ini beberapa kali atau pindah ke pelajaran berikutnya seperti yang mereka inginkan. Pembaca ini juga dapat tertarik dengan topik lain dari LinuxHint.

Pemisahan Topik

Kafka dirancang untuk mengelola aplikasi berat dan mengantrekan sejumlah besar pesan yang disimpan di dalam suatu topik. Untuk memastikan toleransi kesalahan yang tinggi, setiap Topik dibagi menjadi beberapa partisi topik dan setiap Partisi Topik dikelola pada node terpisah. Jika salah satu node turun, node lain dapat bertindak sebagai pemimpin topik dan dapat mengirimkan topik ke konsumen yang tertarik. Berikut adalah bagaimana data yang sama ditulis ke beberapa Partisi Topik:

Partisi Topik


Sekarang, gambar di atas menunjukkan bagaimana data yang sama direplikasi di beberapa partisi. Mari kita visualisasikan bagaimana partisi yang berbeda dapat bertindak sebagai pemimpin pada node/partisi yang berbeda:

Partisi Pialang Kafka

Saat klien menulis sesuatu ke topik pada posisi yang dipimpin oleh Partisi di Broker 0, data ini kemudian direplikasi di seluruh broker/node sehingga pesan tetap aman:

Replikasi di seluruh Partisi Broker

Lebih Banyak Partisi, Throughput Lebih Tinggi

Kafka memanfaatkan Paralelisme untuk memberikan throughput yang sangat tinggi untuk aplikasi produsen dan konsumen. Sebenarnya, dengan cara yang sama, ia juga mempertahankan statusnya sebagai sistem yang sangat toleran terhadap kesalahan. Mari kita pahami seberapa tinggi throughput yang dicapai dengan Paralelisme.

Ketika aplikasi Producer menulis beberapa pesan ke Partisi di Broker 0, Kafka membuka beberapa thread secara paralel sehingga pesan dapat direplikasi di semua Broker yang dipilih secara bersamaan. Di sisi Konsumen, aplikasi konsumen mengkonsumsi pesan dari satu partisi melalui utas. Semakin banyak jumlah Partisi, semakin banyak utas konsumen yang dapat dibuka sehingga semuanya dapat bekerja secara paralel juga. Ini berarti semakin banyak jumlah partisi dalam sebuah cluster, semakin banyak paralelisme yang dapat dieksploitasi, menciptakan sistem throughput yang sangat tinggi.

Lebih Banyak Partisi membutuhkan lebih banyak File Handler

Seperti yang Anda pelajari di atas bagaimana kami dapat meningkatkan kinerja sistem Kafka hanya dengan meningkatkan jumlah partisi. Tapi kita harus berhati-hati dengan batas apa yang kita tuju.

Setiap Partisi Topik di Kafka dipetakan ke direktori di sistem file broker Server tempat ia berjalan. Di dalam direktori log itu, akan ada dua file: satu untuk indeks dan satu lagi untuk data aktual per segmen log. Saat ini, di Kafka, setiap broker membuka pegangan file untuk indeks dan file data setiap segmen log log. Ini berarti bahwa jika Anda memiliki 10.000 Partisi pada satu Broker, ini akan menghasilkan 20.000 File Handler yang berjalan secara paralel. Meskipun, ini hanya tentang konfigurasi Broker. Jika sistem yang digunakan oleh Broker memiliki konfigurasi tinggi, ini tidak akan menjadi masalah.

Risiko dengan jumlah Partisi yang tinggi

Seperti yang kita lihat pada gambar di atas, Kafka menggunakan teknik replikasi intra-cluster untuk mereplikasi pesan dari pemimpin ke partisi Replika yang terletak di Broker lain. Baik aplikasi produsen dan konsumen membaca dan menulis ke partisi yang saat ini menjadi pemimpin partisi itu. Ketika broker gagal, pemimpin di Pialang itu akan menjadi tidak tersedia. Metadata tentang siapa pemimpinnya disimpan di Zookeeper. Berdasarkan metadata ini, Kafka akan secara otomatis menetapkan kepemimpinan partisi ke partisi lain.

Ketika Broker dimatikan dengan perintah clean, node pengontrol klaster Kafka akan memindahkan para pemimpin broker yang mematikan secara serial i.e. satu per satu. jika kami menganggap memindahkan satu pemimpin membutuhkan waktu 5 milidetik, tidak tersedianya pemimpin tidak akan mengganggu konsumen karena tidak tersedianya untuk waktu yang sangat singkat. Tetapi jika kita mempertimbangkan ketika Broker dibunuh dengan cara yang tidak bersih dan Broker ini berisi 5000 partisi dan dari ini, 2000 adalah pemimpin partisi, menugaskan pemimpin baru untuk semua partisi ini akan memakan waktu 10 detik yang sangat tinggi ketika datang ke sangat aplikasi dalam permintaan.

Kesimpulan

Jika kita menganggap sebagai pemikir tingkat tinggi, lebih banyak partisi dalam cluster Kafka mengarah ke throughput sistem yang lebih tinggi. Dengan mengingat efisiensi ini, kita juga harus mempertimbangkan konfigurasi klaster Kafka yang perlu kita pertahankan, memori yang perlu kita tetapkan ke klaster itu dan bagaimana kita dapat mengelola ketersediaan dan latensi jika terjadi kesalahan.

Baca lebih banyak posting berbasis Ubuntu di sini dan lebih banyak lagi tentang Apache kafka juga.

Pertempuran Untuk Wesnoth 1.13.6 Pengembangan Dirilis
Pertempuran Untuk Westnoth 1.13.6 dirilis bulan lalu, adalah rilis pengembangan keenam dalam 1.13.x series dan memberikan sejumlah peningkatan, teruta...
Cara Menginstal League Of Legends di Ubuntu 14.04
Jika Anda adalah penggemar League of Legends, maka ini adalah kesempatan bagi Anda untuk menguji coba League of Legends. Perhatikan bahwa LOL didukung...
Instal Game Strategi OpenRA terbaru di Ubuntu Linux
OpenRA adalah mesin game Strategi Waktu Nyata Libre/Gratis yang membuat ulang game Westwood awal seperti Command & Conquer klasik: Red Alert. Mod yang...