Tutoriel Apache ZooKeeper

โšก Rรฉsumรฉ intelligent

Le tutoriel Apache ZooKeeper prรฉsente le service centralisรฉ de configuration, de dรฉnomination, de synchronisation et de regroupement des services dans les systรจmes distribuรฉs. LessLes sujets abordรฉs incluent l'architecture, le modรจle de donnรฉes, les systรจmes de surveillance, les ensembles, les applications, les avantages et les inconvรฉnients.

  • ๏ธ Service de coordination : ZooKeeper constitue une infrastructure fiable pour la coordination et le consensus des applications distribuรฉes.
  • ๐Ÿ‡ง๐Ÿ‡ท Arbre ZNode : Les donnรฉes sont stockรฉes dans un espace de noms hiรฉrarchique de ZNodes ressemblant ร  un systรจme de fichiers.
  • ๐Ÿ‘€ Montres: Les clients s'abonnent aux รฉvรฉnements ZNode et reรงoivent des notifications lorsque des donnรฉes changent ou que des enfants apparaissent.
  • ๐Ÿงฉ Quorum de l'ensemble : Un ensemble de serveurs en nombre impair assure la tolรฉrance aux pannes et les รฉcritures basรฉes sur la majoritรฉ.
  • | Cas d'utilisation: Gestion des pouvoirs : รฉlection du leader, verrous distribuรฉs, dรฉcouverte de services et gestion de la configuration.
  • ๐Ÿค– AI Cluster Aidez-moi: Les assistants IA expliquent les modes de dรฉfaillance de ZooKeeper et gรฉnรจrent des configurations d'ensemble compatibles avec Kubernetes.

Tutoriel ZooKeeper

Qu'est-ce qu'un systรจme distribuรฉ ?

Une application distribuรฉe est une application qui peut s'exรฉcuter sur plusieurs systรจmes dans un rรฉseau. Il fonctionne simultanรฉment en se coordonnant pour accomplir une certaine tรขche. Ces tรขches peuvent prendre de nombreuses heures pour รชtre exรฉcutรฉes par n'importe quelle application non distribuรฉe.

Quโ€™est-ce que Zookeeper ?

gardien de zoo Apache est un service de coordination distribuรฉ open source qui permet de gรฉrer un large ensemble d'hรดtes. La gestion et la coordination dans un environnement distribuรฉ sont dรฉlicates. Zookeeper automatise ce processus et permet aux dรฉveloppeurs de se concentrer sur la crรฉation de fonctionnalitรฉs logicielles plutรดt que de se soucier de sa nature distribuรฉe.

Zookeeper vous aide ร  conserver les informations de configuration, les noms et les services de groupe pour les applications distribuรฉes. Il implรฉmente diffรฉrents protocoles sur le cluster afin que l'application ne doive pas s'implรฉmenter seule. Il fournit une vue unique et cohรฉrente de plusieurs machines.

Pourquoi Apache Zookeeper ?

Voici les raisons importantes qui expliquent la popularitรฉ du Zookeeper :

  • Il permet l'exclusion mutuelle et la coopรฉration entre les processus serveur
  • Cela garantit que votre application sโ€™exรฉcute de maniรจre cohรฉrente.
  • Le processus de transaction n'est jamais terminรฉ partiellement. Il reรงoit soit le statut de rรฉussite, soit celui d'รฉchec. L'รฉtat distribuรฉ peut รชtre retardรฉ, mais ce n'est jamais mauvais
  • Quel que soit le serveur auquel il se connecte, un client pourra voir la mรชme vue du service
  • Vous aide ร  encoder les donnรฉes selon l'ensemble spรฉcifique de rรจgles
  • Il permet de maintenir un espace de noms hiรฉrarchique standard similaire aux fichiers et rรฉpertoires
  • Ordinateurs, qui fonctionnent comme un systรจme unique pouvant รชtre connectรฉ localement ou gรฉographiquement
  • Il permet de rejoindre/quitter un nล“ud dans un cluster et l'รฉtat du nล“ud en temps rรฉel
  • Vous pouvez augmenter les performances en dรฉployant plus de machines
  • Il vous permet d'รฉlire un nล“ud comme leader pour une meilleure coordination
  • ZooKeeper fonctionne rapidement avec les charges de travail oรน les lectures de donnรฉes sont plus courantes que les รฉcritures

Gardien de zoo Architecture : Comment รงa marche ?

Voici une brรจve explication sur Apache Architecture du gardien de zoo :

  • Zookeeper suit un client-serveur Architecture
  • Tous les systรจmes stockent une copie des donnรฉes
  • Les dirigeants sont รฉlus au dรฉmarrage
Archiconfiguration de ZooKeeper
Archiconfiguration de ZooKeeper

Serveur: Le serveur envoie un accusรฉ de rรฉception lorsqu'un client se connecte. Dans le cas oรน il n'y a pas de rรฉponse du serveur connectรฉ, le client redirige automatiquement le message vers un autre serveur.

Projet: Le client est l'un des nล“uds du cluster d'applications distribuรฉes. Il vous aide ร  accรฉder aux informations du serveur. Chaque client envoie un message au serveur ร  intervalles rรฉguliers qui permet au serveur de savoir que le client est en vie.

leader: L'un des serveurs est dรฉsignรฉ comme leader. Il donne toutes les informations aux clients ainsi qu'un accusรฉ de rรฉception que le serveur est vivant. Il effectuerait une rรฉcupรฉration automatique si l'un des nล“uds connectรฉs tombait en panne.

Disciple: Le nล“ud serveur qui suit les instructions du leader est appelรฉ suiveur.

  • Les demandes de lecture des clients sont traitรฉes par le serveur Zookeeper connectรฉ en consรฉquence
  • Les demandes d'รฉcriture du client sont traitรฉes par le responsable Zookeeper.

Ensemble/Cluster: Groupe de serveurs Zookeeper appelรฉ ensemble ou a ClusterVous pouvez utiliser l'infrastructure ZooKeeper en mode cluster pour que le systรจme soit ร  la valeur optimale lorsque vous exรฉcutez Apache.

Interface utilisateur Web de ZooKeeper : Si vous souhaitez travailler avec la gestion des ressources ZooKeeper, vous devez utiliser WebUI. Il permet de travailler avec ZooKeeper en utilisant l'interface utilisateur Web, au lieu d'utiliser la ligne de commande. Il offre une communication rapide et efficace avec l'application ZooKeeper.

Le modรจle de donnรฉes Zookeeper (ZDM)

Maintenant, dans ce didacticiel ZooKeeper, dรฉcouvrons le modรจle de donnรฉes Zookeeper. La figure ci-dessous explique le modรจle de donnรฉes Apache Zookeeper :

Le modรจle de donnรฉes Zookeeper
Modรจle de donnรฉes Zookeeper
  • Le modรจle de donnรฉes zookeeper suit un espace de noms hiรฉrarchique oรน chaque nล“ud est appelรฉ ZNode. Un nล“ud est un systรจme sur lequel le cluster s'exรฉcute.
  • Chaque ZNode contient des donnรฉes. Il peut ou non avoir des enfants
  • Chemins des nล“uds Z :
    • Canonique, sรฉparรฉ par des barres obliques et absolu
    • Ne pas utiliser de rรฉfรฉrences relatives
    • Les noms peuvent contenir des caractรจres Unicode
  • ZNode conserve la structure des statistiques et le numรฉro de version pour les modifications de donnรฉes.

Types de nล“uds Zookeeper

Il existe trois types de Znodes :

Persistence znode : ce type de znode est vivant mรชme aprรจs la dรฉconnexion du client qui a crรฉรฉ ce znode spรฉcifique. Par dรฉfaut, dans zookeeper, tous les nล“uds sont persistants si cela n'est pas spรฉcifiรฉ.

ร‰phรฉmรจre znode : ce type de znode gardien de zoo est vivant jusqu'ร  ce que le client soit en vie. Par consรฉquent, lorsque le client est dรฉconnectรฉ du gardien de zoo, il sera รฉgalement supprimรฉ. De plus, les nล“uds รฉphรฉmรจres ne sont pas autorisรฉs ร  avoir des enfants.

Sรฉquentiel znode : les znodes sรฉquentiels peuvent รชtre รฉphรฉmรจres ou persistants. Ainsi, lorsqu'un nouveau znode est crรฉรฉ en tant que znode sรฉquentiel. Vous pouvez attribuer le chemin du znode en attachant un numรฉro de sรฉquence ร  10 chiffres au nom d'origine.

ZDM-Montres

Zookeeper, un รฉvรฉnement de surveillance est un dรฉclencheur unique qui est envoyรฉ au client qui a dรฉfini la surveillance. Cela s'est produit lorsque les donnรฉes de cette montre changent. La montre ZDM permet aux clients de recevoir des notifications lorsque le znode change. Les opรฉrations de lecture ZDM telles que getData(), getChidleren() existent et offrent la possibilitรฉ de dรฉfinir une surveillance.

Les montres sont ordonnรฉes, l'ordre des รฉvรฉnements de la montre correspond ร  l'ordre des mises ร  jour. Un client pourra voir un รฉvรฉnement de surveillance pour znode avant de voir les nouvelles donnรฉes qui correspondent ร  ce znode.

ZDM - Liste de contrรดle d'accรจs

Zookeeper utilise des ACL pour contrรดler l'accรจs ร  ses znodes. L'ACL est composรฉe d'une paire de (Schรฉma : identifiant, autorisation)

Intรฉgrer des schรฉmas ACL :

monde : a un seul identifiant, n'importe qui

auth : n'utilise aucun identifiant, il reprรฉsente tout utilisateur authentifiรฉ

digest : utilisez un nom d'utilisateur : mot de passe

host : vous permet d'utiliser le nom d'hรดte du client comme identitรฉ d'identifiant ACL

IP : utiliser l'adresse IP de l'hรดte client comme identitรฉ d'identifiant ACL

Autorisations ACL :

  • CREATE
  • LIS
  • ร‰CRIRE
  • EFFACER
  • ADMIN

Ex (IP : 192.168.0.0/16, LIRE)

Le ZKS โ€“ ร‰tats de session et durรฉe de vie

ZKS โ€“ ร‰tats de session
ZKS โ€“ ร‰tats de session
  • Avant d'exรฉcuter toute requรชte, il est important que le client รฉtablisse une session avec le service
  • Toutes les opรฉrations que les clients sont envoyรฉs au service sont automatiquement associรฉes ร  une session
  • Le client peut se connecter ร  n'importe quel serveur du cluster. Mais il ne se connectera qu'ร  un seul serveur
  • La sรฉance offre des ยซ garanties de commande ยป. Les requรชtes de la session sont exรฉcutรฉes dans l'ordre FIFO
  • Les principaux รฉtats d'une session sont 1) En cours de connexion, 2) Connectรฉ 3) Fermรฉ 4) Non connectรฉ.

Comment installer ZooKeeper

ร‰tape 1) Cliquez sur Continuer pour vous abonner
Aller ร  cette lien et cliquez sur "Continuer ร  vous abonner"

Installer ZooKeeper

ร‰tape 2) Accepter les termes et conditions
Sur la page suivante, Acceptez le contrat de licence

Installer ZooKeeper

ร‰tape 3) Message de remerciement affichรฉ
Vous verrez le message suivant

Installer ZooKeeper

ร‰tape 4) Cliquez sur Continuer pour configurer
Actualisez la page aprรจs 5 minutes et procรฉdez ร  la configuration

Installer ZooKeeper

ร‰tape 5) Cliquez sur ยซ Continuer le lancement ยป
Dans l'รฉcran suivant, lancez ZooKeeper

Installer ZooKeeper

ร‰tape 6) Fรฉlicitations!
Vous avez terminรฉ!

Applications Apache ZooKeeper

Apache Zookeeper utilisรฉ aux fins suivantes :

  • Gestion de la configuration
  • Services de dรฉnomination
  • Choisir le leader
  • Mettre les messages en file d'attente
  • Gestion du systรจme de notifications
  • Synchronisation
  • Distribuรฉ Cluster Direction

Entreprises utilisant Zookeeper

  • Yahoo
  • Facebook
  • eBay
  • Twitter
  • Netflix
  • Zynga
  • Nutanix

Inconvรฉnients de lโ€™utilisation de Zookeeper

  • Une perte de donnรฉes peut survenir si vous ajoutez de nouveaux serveurs Zookeeper
  • Aucune migration autorisรฉe pour les utilisateurs
  • N'offre pas de support pour le placement et la sensibilisation en rack
  • Zookeeper ne vous permet pas de rรฉduire le nombre de pods pour รฉviter toute perte accidentelle de donnรฉes
  • Vous ne pouvez pas basculer le service vers un rรฉseau hรดte sans une rรฉinstallation complรจte lorsque le service est dรฉployรฉ sur un rรฉseau virtuel
  • Le service ne prend pas en charge la modification des exigences de volume une fois le dรฉploiement initial terminรฉ
  • Un grand nombre de nล“uds sont impliquรฉs, il peut donc y avoir plusieurs points de dรฉfaillance.
  • Les messages peuvent รชtre perdus dans le rรฉseau de communication, ce qui nรฉcessite un logiciel spรฉcial pour les rรฉcupรฉrer

FAQ

ZooKeeper coordonne les applications distribuรฉes en fournissant des services cohรฉrents de configuration, de nommage, de synchronisation et d'รฉlection de leader. Il รฉvite ainsi d'avoir ร  recrรฉer ces รฉlรฉments fondamentaux dans chaque systรจme.

Les outils d'IA gรฉnรจrent la configuration de ZooKeeper, suggรจrent le dimensionnement des ensembles et analysent les mรฉtriques ruok et mntr. Ils signalent les risques de split-brain et proposent des scripts de contrรดle d'intรฉgritรฉ pour les clusters de production.

Oui. Les assistants IA analysent les journaux zookeeper.out, identifient les schรฉmas de perte de quorum et recommandent des ajustements du dรฉlai d'expiration des sessions. Ils rรฉdigent รฉgalement des procรฉdures pour les redรฉmarrages progressifs et la restauration ร  partir d'instantanรฉs.

Un ensemble est un groupe de serveurs ZooKeeper fonctionnant ensemble. Les รฉcritures nรฉcessitent un quorum majoritaire ; cโ€™est pourquoi la plupart des configurations de production utilisent un nombre impair de serveurs, comme trois, cinq ou sept.

Un ZNode est un nล“ud de l'espace de noms ZooKeeper qui stocke de petites quantitรฉs de donnรฉes et de mรฉtadonnรฉes. Les ZNodes peuvent รชtre persistants, รฉphรฉmรจres ou sรฉquentiels, permettant ainsi la mise en place de verrous et de modรจles d'รฉlection de leader.

Kafka 4.0 et le mode KRaft suppriment ZooKeeper et le remplacent par un quorum de contrรดleur interne basรฉ sur Raft. Les nouveaux dรฉploiements utilisent KRaft, tandis que les clusters plus anciens peuvent continuer ร  utiliser ZooKeeper en toute sรฉcuritรฉ.

ZooKeeper prend en charge l'authentification SASL, Kerberos, le protocole TLS et l'autorisation basรฉe sur les listes de contrรดle d'accรจs (ACL). Activez ces fonctionnalitรฉs et segmentez les ensembles par locataire afin de maintenir l'isolation dans les environnements partagรฉs.

Les dรฉbutants maรฎtrisent le modรจle de donnรฉes et l'interface de ligne de commande en une semaine. OperaLa mise en place d'un ensemble de production avec des instantanรฉs, une surveillance et Kerberos nรฉcessite gรฉnรฉralement un ร  trois mois d'expรฉrience pratique.

Rรฉsumez cet article avec :