Zookeeper vs KRaft

Zookeeper

Zookeeper berperan penting dalam layanan Kafka. Pertama, Zookeeper berfungsi sebagai service discovery untuk mencantumkan semua informasi broker. Selanjutnya, Zookeeper digunakan untuk memilih leader dari partisi. Selain itu, Zookeeper mengirim notifikasi ke Kafka jika terjadi perubahan seperti topik baru, broker yang mati atau hidup, delete topik, dan lain sebagainya.
Pada versi Kafka 2.x, Zookeeper diperlukan untuk menjalankan Kafka. Namun, pada Kafka 3.x, alternatif lain yaitu KRaft dapat digunakan sehingga Kafka dapat berjalan tanpa Zookeeper. Pada versi Kafka 4.x, Zookeeper tidak akan digunakan lagi.
Penting untuk diingat bahwa jumlah Zookeeper yang diinstal harus ganjil. Selain itu, Zookeeper memiliki satu pemimpin (write) dan beberapa pengikut (read).

Is Zookeeper Necessary

With Kafka Brokers
Ya, sampai Kafka 4.0 tanpa zookeeper release
With Kafka Clients
Tidak, gunakan broker connection daripada zookeeper connection
Karena alasan keamanan port Zookeeper hanya boleh di open ke kafka broker dan tidak ke kafka client

KRaft

Arsitektur Zookeeper
Arsitektur KRaft
Performa KRaft