ZooKeeper est un service de coordination distribué et hautement disponible qui offre des services de configuration distribuée, de synchronisation et d'attribution de noms.
Principes de base
Un cluster ZooKeeper doit comporter un nombre impair de nœuds (2N+1). Un protocole d'élection interne désigne l'un des nœuds comme Leader, tandis que les autres deviennent des Followers. Le nœud Leader coordonne toutes les requêtes d'écriture. Une opération d'écriture n'est validée que si au moins (N+1) nœuds votent pour elle ; le service ZooKeeper nécessite donc au moins (N+1) nœuds actifs pour rester disponible. En cas de défaillance du Leader, le cluster tient une nouvelle élection pour en choisir un nouveau, garantissant ainsi la haute disponibilité.
Organisation des données
ZooKeeper organise les données dans une arborescence à l'aide de znodes (nœuds ZooKeeper). Contrairement à un système de fichiers standard, un znode ne distingue pas les dossiers des fichiers et peut stocker des données.
En tant que service de coordination, les znodes servent principalement à stocker des données de coordination, telles que l'état des services et les informations de configuration. N'utilisez pas ZooKeeper comme un système de fichiers pour stocker de grands volumes de données.