编程知识 cdmana.com

Byte Jump the latest open source, the most Classic hashtap Graph details,

NO1:Dis - le.zookeeperQu'est - ce que c'est??

ZooKeeperC'est une distribution,Service de coordination des applications distribuées open source,- Oui.GoogleDeChubbyUne implémentation open source(ChubbyN'est pas Open Source),C'est l'Administrateur du cluster,Surveiller l'état de chaque noeud du cluster pour effectuer les prochaines étapes raisonnables en fonction de la rétroaction soumise par le noeud.Final,Rendre les interfaces simples et faciles à utiliser et les performances efficaces、Un système fonctionnel et stable est mis à la disposition des utilisateurs .

ZookeeperL'un des scénarios d'utilisation les plus courants est utilisé comme registre des producteurs et des consommateurs de services,Les producteurs de services enregistrent les services qu'ils fournissent auprès deZookeeperCentre,Le consommateur du Service arrive en premier lorsqu'il fait un appel de serviceZookeeperTrouver des services,Après avoir obtenu les détails du producteur de services,Pour invoquer le contenu et les données du producteur de services,Voici un exemple simple:

Byte Jump the latest Open Source,Le plus classiqueHashMapDétails graphiques et textuels,_Java

NO2:Compris.ZookeeperL'architecture du système pour?

Byte Jump the latest Open Source,Le plus classiqueHashMapDétails graphiques et textuels,_Arrière - plan_02

ZooKeeper Les principaux éléments que nous devons comprendre et maîtriser sont:

(1)ZooKeeperDivisé en côté serveur(Server) Et le client(Client),Le client peut se connecter à l'ensemble ZooKeeperSur n'importe quel serveur du Service(À moins que leaderServes Les paramètres sont explicitement définis, leader Accepter les connexions des clients non autorisées).

(2)Le client utilise et maintient un TCP Connexion,Envoyer une demande par cette Connexion、Réponse acceptée、Obtenir des événements observés et envoyer des informations.Si ça TCP Déconnexion,Le client tentera automatiquement de se connecter à un autre ZooKeeperServeur.Le client se connecte pour la première fois à ZooKeeperHeures de service,Cette connexion est acceptable ZooKeeperLe serveur crée une session pour ce client.Quand ce client se connecte à un autre serveur,Cette session sera rétablie par le nouveau serveur.

(3)Chacune des figures ci - dessusServerReprésente une installationZookeeperMachine de service,C'est l'offre totaleZookeeperRegroupement des services(Ou un pseudo - Cluster.);

(4)CompositionZooKeeperLes serveurs du service doivent se connaître.Ils maintiennent une image d'état en mémoire,Pourquoi l'enregistrement et la découverte des services peuvent - ils être réalisés?Et les journaux de transactions et les instantanés dans le stockage persistant, Tant que la plupart des serveurs sont disponibles,ZooKeeperService disponible;

(5)ZooKeeper Au démarrage,Un sera choisi parmi les instances leader,Leader Responsable de la mise à jour des données, etc.,Un indicateur de succès de l'opération de mise à jour est si et seulement si la plupart desServerModification réussie des données en mémoire.ChaqueServer Une copie des données est stockée en mémoire.

(6)ZookeeperEst répliquable en Cluster,Passage entre grappesZabAccord(Zookeeper Atomic Broadcast)Pour maintenir la cohérence des données;

(7)ZabL'accord comporte deux phases:leader electionPhase etAtomic BrodcastPhase.

  • a) Un sera élu dans le Groupeleader,D'autres machines sont appeléesfollower,Toutes les écritures sont transmises àleader,Et à traversbrodcastDites toutes les mises à jour àfollower.
  • b) QuandleaderCrash orleaderPerdre la plupartfollowerHeure,Une nouvelle élection est nécessaireleader,Restaurer tous les serveurs dans un état correct.
  • c) QuandleaderÊtre élu,Et la plupart des serveurs ont terminé EtleaderAprès la synchronisation de l'état de,leadder election C'est fini.,Va entrerAtomic brodcastProcessus.
  • d) Atomic BrodcastSynchroniserleaderEtfollowerInformations entre,GarantieleaderEtfollowerÉtat du système identique.

NO3:- Oui.ZookeeperComment ça marche??

ZookeeperLa diffusion atomique est au cœur de,Ce mécanisme garantit que chaqueServerSynchronisation entre.Le Protocole qui implémente ce mécanisme est appeléZabAccord.

ZabLe Protocole a deux modes,Elles Mode de récupération(Choisir le maître)Et les modes de diffusion(Synchroniser).

ZabAccord Son nom complet est Zookeeper Atomic Broadcast** (ZookeeperDiffusion atomique).Zookeeper C'est par Zab Protocole pour assurer la cohérence finale des transactions distribuées.ZabL'accord exige que chaque Leader Il y a trois étapes:Découverte,Synchroniser,Diffusion.

Lorsque le service démarre ou que le leader s'écrase,ZabEn mode récupération,Quand les dirigeants sont élus,Et la plupartServerTerminé et leaderAprès la synchronisation de l'état de,Le mode de récupération est terminé..La synchronisation de l'état est garantieleaderEtServerMême état du système.

Pour assurer la cohérence de l'ordre des transactions,zookeeperOpérations progressives utiliséesidNo.(zxid)Pour identifier la transaction.Toutes les propositions(proposal)Tout a été ajouté au moment de la présentation. C'est parti.zxid.En cours de réalisationzxidC'est un64Nombre de bits,C'est haut.32- Oui.epochUtilisé pour identifierleaderLa relation a - t - elle changé?,Un à la foisleaderÉlu.,Il en aura un. Neuf.epoch,L'identité appartient actuellement àleaderLe règne de.No32Bits pour le comptage incrémental.

epoch:Peut être compris comme l'année de l'empereur,Quand le nouvel empereurleaderAprès la production,Il y aura un nouveauepochAnnée.

ChaqueServerIl y a trois états dans le processus de travail:

  • LOOKING:En coursServerJe ne sais pas.leaderQui est - ce?,Recherche en cours.
  • LEADING:En coursServerC'est une élection.leader.
  • FOLLOWING:leaderA été élu,En coursServerSynchroniser avec.

NO4:ZookeeperPourquoi ce design??

ZooKeeperConçu pour fournir des performances élevées、Haute disponibilité、Services de coordination distribués avec cohérence séquentielle、Assurer la cohérence finale des données.

Haute performance(Modèle de données simple)

  1. Utiliser la structure de l'arbre pour organiser les noeuds de données;
  2. Noeud de données complet,Tout est stocké en mémoire;
  3. Follower Et Observer Traitement direct des demandes non transactionnelles;

Haute disponibilité(Création de grappes)

  1. Plus de la moitié des machines survivent,Le service fonctionne correctement
  2. Automatique Leader Elections

Cohérence séquentielle(Ordre des opérations)

  1. Chaque demande de transaction,Sont transmis à Leader Traitement
  2. Par transaction,Des incréments uniques au niveau mondial sont attribuésid(zxid,64Bits:epoch + Auto - augmentation id)

Conformité finale

  1. Adoption du mode de vote proposé,Assurer la fiabilité de la soumission des transactions
  2. Mode de vote proposé,C'est garanti. Client Après avoir reçu la transaction soumise avec succès,Plus de la moitié des noeuds peuvent voir les données les plus récentes

NO5:Tu le sais.ZookeeperQuels rôles y a - t - il dans?

Modèle de système:

Byte Jump the latest Open Source,Le plus classiqueHashMapDétails graphiques et textuels,_Arrière - plan_03

Leader(leader)

LeaderLe serveur fournit des services de lecture et d'écriture aux clients.Responsable de l'initiation et de la résolution du vote,Mettre à jour l'état du système.

Les apprenants(learner)

  • Suiveur(follower) FollowerLe serveur fournit des services de lecture aux clients,ParticipationLeaderProcessus électoral,Participer à l'écriture“Plus de la moitié a été écrite avec succès”Stratégie.
  • L'observateur(observer) ObserverLe serveur fournit des services de lecture aux clients,Pas de participationLeaderProcessus électoral,Ne pas participer à l'écriture“Plus de la moitié a été écrite avec succès”Stratégie.Utilisé pour améliorer les performances de lecture d'un Cluster sans affecter les performances d'écriture.

Client(client):Initiateur de la demande de service.

NO6:Vous le connaissez.ZookeeperNoeudZNodeEt les attributs associés?

Quels types de noeuds ont?

ZnodeDeux types:

Durable(persistent):Après la déconnexion du client et du serveur,Les noeuds créés ne sont pas supprimés(Par défaut).

De courte durée(ephemeral):Après la déconnexion du client et du serveur,Les noeuds créés sont supprimés par eux - mêmes.

ZnodeIl existe quatre formes:

  • Noeud de répertoire persistant(PERSISTENT):Clients etZookeeperAprès déconnexion,Un noeud de répertoire de numéro d'ordre persistant existe toujours pour ce noeud(PERSISTENT_SEQUENTIAL)
  • Clients etZookeeperAprès déconnexion,Le noeud existe toujours,C'est juste...ZookeeperNuméroter séquentiellement le nom du noeud:Noeud de répertoire temporaire(EPHEMERAL)
  • Clients etZookeeperAprès déconnexion,Le noeud est supprimé:Noeud de catalogue de numérotation séquentielle temporaire(EPHEMERAL_SEQUENTIAL)
  • Clients etZookeeperAprès déconnexion,Le noeud est supprimé,C'est juste...ZookeeperNuméroter séquentiellement le nom du noeud

「Attention!」:CréationZNodeDéfinir l'id de séquence,ZNodeUne valeur est ajoutée après le nom,Le numéro de séquence est un compteur monotone incrémental,Maintenu par le noeud parent.

Enfin

Ce n'est pas mon style de ne pas donner de réponses aux questions d'entrevue.Les questions d'entrevue sont rares,Et la réponse serait énormeAugmenter la longueur de l'article,Réduire la lisibilité des articles

 CodeChinaProjet Open Source:【Grandes usines de première ligneJavaAnalyse des questions d'entrevue+Résumé de base notes d'étude+Dernière vidéo d'explication】

JavaUn dictionnaire d'interview2021Édition

Byte Jump the latest Open Source,Le plus classiqueHashMapDétails graphiques et textuels,_Programmeur_04

Byte Jump the latest Open Source,Le plus classiqueHashMapDétails graphiques et textuels,_Programmeur_05

Le plus fréquentJavaAnalyse des questions d'entrevue(2021Dernière édition)

Byte Jump the latest Open Source,Le plus classiqueHashMapDétails graphiques et textuels,_Arrière - plan_06

Byte Jump the latest Open Source,Le plus classiqueHashMapDétails graphiques et textuels,_Java_07

2021EntreprisesJavaSélection des questions d'entrevue

Byte Jump the latest Open Source,Le plus classiqueHashMapDétails graphiques et textuels,_Java_08

Byte Jump the latest Open Source,Le plus classiqueHashMapDétails graphiques et textuels,_Programmeur_09

版权声明
本文为[Tenez - vous prêts.]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/09/20210915075920553g.html

Scroll to Top