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

cZxidID de transaction lors de la création du nœud
ctimeL'heure à laquelle le nœud a été créé
mZxidID de transaction lors de la dernière modification du nœud
mtimeL'heure à laquelle le nœud a été modifié pour la dernière fois
pZxidIndique 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)
cversionNuméro de version du nœud enfant ; le numéro de version augmente de 1 à chaque fois que le nœud enfant est modifié
dataversionNuméro de version des données ; le numéro de version augmente de 1 à chaque fois que les données sont modifiées
aclversionNuméro de version des permissions ; le numéro de version augmente de 1 à chaque fois que la permission est modifiée
ephemeralOwnerL'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)**
dataLengthLa longueur des données de ce nœud
numChildrenLe 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.