Membangun Klaster Apache Kafka Tiga Node Menggunakan Mode KRaft
Apache Kafka adalah platform streaming terdistribusi yang kuat, dan mode KRaft (Kafka Raft Metadata) adalah evolusi signifikan yang menghilangkan ketergantungan pada ZooKeeper untuk manajemen metadata. Mengkonfigurasi klaster tiga node menggunakan KRaft memberikan arsitektur yang tangguh dan efisien. Berikut adalah langkah-langkah krusial untuk membangun klaster semacam ini.
Persiapan Awal untuk Klaster Kafka
Sebelum memulai, pastikan Anda memiliki minimal tiga server atau mesin virtual. Setiap node akan menjalankan instansi Kafka. Pastikan juga bahwa Java terinstal di semua server, karena Kafka membutuhkannya. Selain itu, konfigurasi jaringan dan firewall harus memungkinkan komunikasi antar node pada port default Kafka (9092) serta port untuk komunikasi KRaft (biasanya 9093).
Pengunduhan dan Ekstraksi Kafka
Langkah pertama adalah mengunduh distribusi binary terbaru dari situs web Apache Kafka. Setelah terunduh, ekstrak file tersebut ke direktori yang diinginkan di setiap node klaster. Ini akan membuat direktori yang berisi semua skrip dan file konfigurasi yang diperlukan.
Menciptakan ID Klaster Unik
Untuk mode KRaft, seluruh klaster Kafka memerlukan ID klaster yang unik. ID ini dihasilkan hanya sekali dan digunakan oleh semua node dalam klaster yang sama. Gunakan skrip yang disediakan Kafka (kafka-storage.sh
) dengan opsi generate-cluster-id
di salah satu node untuk mendapatkan ID ini. Salin ID klaster yang dihasilkan karena akan diperlukan dalam konfigurasi setiap node.
Konfigurasi Node Kafka dengan KRaft
Setiap node dalam klaster memerlukan konfigurasi spesifik. Edit file config/kraft/server.properties
di setiap server. Beberapa parameter penting yang perlu diatur meliputi:
node.id
: Berikan ID unik (misalnya 1, 2, 3) untuk setiap node.listeners
: Konfigurasi listener untuk klien dan komunikasi antar broker (misalnya PLAINTEXT://hostname:9092, CONTROLLER://hostname:9093). PastikanCONTROLLER
listener digunakan untuk komunikasi KRaft.advertised.listeners
: Penting agar klien dan broker lain dapat terhubung ke node ini. Gunakan hostname atau IP yang dapat dijangkau dari luar.controller.quorum.voters
: Daftar semua node pengontrol dalam klaster, termasuk ID node dan alamatCONTROLLER
listener mereka (misalnya1@hostname1:9093,2@hostname2:9093,3@hostname3:9093
).log.dirs
: Direktori tempat Kafka menyimpan data log.cluster.id
: Masukkan ID klaster unik yang dihasilkan sebelumnya.process.roles
: Tentukan peran node. Untuk klaster tiga node dengan KRaft, setiap node biasanya berfungsi ganda sebagai pengontrol (controller) dan broker (broker). Atur ini menjadibroker,controller
.
Pastikan konfigurasi ini disesuaikan untuk setiap node sesuai dengan ID dan alamat jaringannya.
Inisialisasi Direktori Data KRaft
Sebelum menjalankan Kafka untuk pertama kalinya dalam mode KRaft, direktori data yang ditentukan dalam log.dirs
harus diinisialisasi. Gunakan skrip kafka-storage.sh
dengan opsi format
dan berikan direktori log serta ID klaster. Lakukan ini di setiap node.
Menjalankan Node Klaster Kafka
Setelah konfigurasi dan inisialisasi, Anda dapat memulai setiap node Kafka. Gunakan skrip kafka-server-start.sh
yang merujuk pada file server.properties
yang telah dikonfigurasi. Mulai setiap node satu per satu.
Verifikasi Klaster dan Pengujian Topik
Untuk memastikan klaster berfungsi dengan baik, periksa log Kafka di setiap node untuk mencari pesan sukses startup. Anda juga dapat menggunakan skrip kafka-topics.sh
untuk membuat topik baru atau mencantumkan topik yang ada. Uji coba fungsionalitas klaster dengan menjalankan produser untuk mengirim pesan ke topik dan konsumer untuk membaca pesan dari topik tersebut. Ini memverifikasi bahwa data dapat dialirkan melalui klaster yang telah diatur.
Membangun klaster tiga node dengan mode KRaft adalah fondasi yang solid untuk aplikasi yang membutuhkan pemrosesan data streaming yang skalabel dan tahan terhadap kegagalan. Konfigurasi yang cermat pada setiap node adalah kunci keberhasilan implementasi ini.
Sumber: https://kifarunix.com/setup-a-three-node-kafka-kraft-cluster/