ZooKeeper adalah layanan koordinasi terdistribusi dengan ketersediaan tinggi yang menyediakan konfigurasi terdistribusi, sinkronisasi, dan layanan penamaan.
Prinsip dasar
Kluster ZooKeeper harus terdiri atas jumlah node ganjil (2N+1). Protokol pemilihan internal memilih satu node sebagai Leader, sedangkan node lainnya berperan sebagai Follower. Saat menulis data, Leader mengoordinasikan semua permintaan tulis. Operasi tulis berhasil hanya jika setidaknya (N+1) node memberikan suara mendukungnya; oleh karena itu, minimal (N+1) node harus aktif agar layanan ZooKeeper tetap tersedia. Jika Leader gagal, kluster segera mengadakan pemilihan baru untuk menunjuk Leader pengganti, sehingga menjamin ketersediaan tinggi.
Organisasi data
ZooKeeper mengorganisasi data dalam struktur pohon menggunakan znode (node ZooKeeper). Berbeda dengan sistem file standar, znode tidak membedakan antara folder dan file, serta setiap znode dapat menyimpan data.
Sebagai layanan koordinasi, znode terutama digunakan untuk menyimpan data koordinasi, seperti status layanan dan informasi konfigurasi. ZooKeeper tidak boleh digunakan sebagai sistem file untuk menyimpan data dalam jumlah besar.