Modèle de données
Dans zookeeper, on peut dire que toutes les données stockées dans zookeeper sont constituées de znodes. Les nœuds sont aussi appelés znodes, et les données sont stockées sous forme clé/valeur.
La structure globale est similaire au modèle du système de fichiers Linux, stockée dans une structure arborescente. Le chemin racine commence par/au début.
Entrez dans le répertoire bin de l'installation de zookeeper, ouvrez le terminal en ligne de commande via sh zkCli.sh, et exécutez la commande "ls /" pour afficher :$ ls / $ ls /zookeeper $ ls /zookeeper/quota

Nous pouvons voir intuitivement que les données stockées comportent actuellement deux nœuds, example et zookeeper, sous le répertoire racine, et sous le nœud zookeeper se trouve un nœud appelé quota.

Le nœud example a été créé dans notre chapitre précédent, et sa valeur a été définie sur 0 via le client Java. Nous exécutons maintenant dans le terminal de ligne de commandeget /examplepour afficher les attributs de ce nœud.
$ get /example

Le 0 affiché dans la première ligne est la valeur de ce nœud.
Attributs d'état du Znode
| cZxid | ID de transaction lors de la création du nœud |
|---|---|
| ctime | L'heure à laquelle le nœud a été créé |
| mZxid | ID de transaction lors de la dernière modification du nœud |
| mtime | L'heure à laquelle le nœud a été modifié pour la dernière fois |
| pZxid | Indique l'ID de transaction de la dernière modification de la liste des nœuds enfants de ce nœud. L'ajout ou la suppression de nœuds enfants affecte la liste des nœuds enfants, mais la modification du contenu des données d'un nœud enfant n'affecte pas cet ID.(Remarque : seules les modifications de la liste des nœuds enfants modifieront pzxid ; les modifications du contenu d'un nœud enfant n'affectent pas pzxid) |
| cversion | Numéro de version du nœud enfant ; le numéro de version augmente de 1 à chaque fois que le nœud enfant est modifié |
| dataversion | Numéro de version des données ; le numéro de version augmente de 1 à chaque fois que les données sont modifiées |
| aclversion | Numéro de version des permissions ; le numéro de version augmente de 1 à chaque fois que la permission est modifiée |
| ephemeralOwner | L'ID de session de la session qui a créé ce nœud éphémère.(**Si le nœud est un nœud persistant, alors la valeur de cet attribut est 0)** |
| dataLength | La longueur des données de ce nœud |
| numChildren | Le nombre de nœuds enfants que possède ce nœud(Compte uniquement le nombre de nœuds enfants directs) |
Après avoir compris les valeurs d'attribut d'état ci-dessus, nous allons/exampleapporter une modification au nœud, exécuter la commandeset /example 1, comme le montre la figure ci-dessous :
$ set /example 1

En comparant les résultats ci-dessus, on peut voir que mZxid, mtime et dataVersion ont tous changé.
Sous le nœud/example, nous ajoutons un autre nœud enfant, exécutez :
$ create -e /example/child 0 $ get /example
Remarque :L'utilisation d'autres commandes sera expliquée en détail dans les chapitres suivants.
Après exécution, la ligne de commande du terminal affiche :

On peut voir que/exampleles pZxid, cversion et numChildren du nœud ont tous changé en conséquence.