ZooKeeper est un projet logiciel de l'Apache Software Foundation. Il fournit des services open source de configuration distribuée, de synchronisation et d'enregistrement de noms pour le calcul distribué à grande échelle.

L'architecture de ZooKeeper atteint une haute disponibilité grâce à des services redondants.

L'objectif de conception de Zookeeper est d'encapsuler ces services de cohérence distribuée complexes et sujets à erreur dans un ensemble efficace et fiable de primitives, et de les fournir aux utilisateurs via une série d'interfaces simples et faciles à utiliser.

C'est une solution typique pour la cohérence des données distribuées. Les applications distribuées peuvent implémenter des fonctions telles que la publication/abonnement de données, l'équilibrage de charge, les services de nommage, la coordination/notification distribuée, la gestion de cluster, l'élection de Master, les verrous distribués et les files d'attente distribuées en se basant sur celui-ci.

Qui devrait lire ce tutoriel ?

Ce tutoriel est destiné aux programmeurs professionnels. Grâce à ce tutoriel, vous pouvez apprendre les applications Zookeeper étape par étape.

Structure de données Zookeeper

L'espace de noms fourni par Zookeeper est très similaire à un système de fichiers standard, stocké sous forme clé-valeur. La clé de nom est une série d'éléments de chemin séparés par des barres obliques./Chaque nœud de l'espace de noms Zookeeper est identifié par un chemin.

Théorie CAP associée

La théorie CAP stipule que pour un système informatique distribué, il est impossible de satisfaire simultanément les trois points suivants :
  • Cohérence: Dans un environnement distribué, la cohérence désigne la capacité des données à rester cohérentes sur plusieurs réplicas, ce qui équivaut à ce que tous les nœuds accèdent à la même copie la plus récente des données. Sous l'exigence de cohérence, lorsqu'un système effectue une opération de mise à jour dans un état de données cohérent, il doit garantir que les données du système restent dans un état cohérent.
  • Disponibilité:Chaque requête peut obtenir une réponse correcte, mais cela ne garantit pas que les données obtenues soient les plus récentes.

  • Tolérance au partitionnement :Un système distribué doit encore pouvoir fournir des services qui satisfont la cohérence et la disponibilité en cas de n'importe quelle défaillance de partition réseau, à moins que l'ensemble de l'environnement réseau ne tombe en panne.

Un système distribué peut satisfaire au plus deux des trois exigences : cohérence, disponibilité et tolérance au partitionnement.

Parmi ces trois exigences de base, au plus deux peuvent être satisfaites en même temps. P est obligatoire, donc vous ne pouvez choisir qu'entre CP et AP. Zookeeper garantit CP, tandis qu'Eureka, le registre du système Spring Cloud, implémente AP.

Théorie BASE

BASE est l'abréviation de Basically Available, Soft-state et Eventually Consistent.

  • Basically Available :Lorsqu'un système distribué tombe en panne, il est autorisé à perdre une partie de sa disponibilité (dégradation de service, dégradation de page).

  • Soft state :Le système distribué est autorisé à avoir un état intermédiaire. De plus, l'état intermédiaire n'affecte pas la disponibilité du système. L'état intermédiaire ici signifie que les mises à jour de données entre différentes répliques de données (nœuds de sauvegarde de données) peuvent être retardées, pour finalement atteindre la cohérence.

  • Eventually consistent :Les répliques de données atteignent la cohérence après un certain temps.

La théorie BASE est le résultat d'un compromis entre cohérence et disponibilité dans CAP. L'idée centrale de cette théorie est : nous ne pouvons pas atteindre une forte cohérence, mais chaque application peut utiliser des méthodes appropriées en fonction de ses propres caractéristiques métier pour rendre le système finalement cohérent.

Ressources associées

Site officiel de Zookeeper :https://zookeeper.apache.org/