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

Tenez - vous prêts. 2021-09-15 08:08:01
byte jump latest open source


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://javamana.com/2021/09/20210915075920553g.html

  1. Java + SSM Social Insurance Pension System for Computer Graduation Design
  2. Java inheritance
  3. Java method review
  4. java JVM
  5. Java Basics
  6. Java file operation object IO stream
  7. Java console reads multi character input and output
  8. Java simple array sorting
  9. In addition to MySQL master-slave, you have another choice, Galera
  10. Configuration standard dockerfile et docker-composer.yml
  11. 字节大神强推千页PDF学习笔记,2021Java开发学习路线,
  12. 字节大牛耗时八个月又一力作,靠这份Java知识点PDF成功跳槽,
  13. 字节大牛教你手撕Java学习,最新大厂程序员进阶宝典,
  14. Comment l'automne est - il beau?Ces 24 ensembles de modèles d'automne et d'hiver sont grands, minces et vieillissants
  15. 字節大牛教你手撕Java學習,最新大廠程序員進階寶典,
  16. 字節大牛耗時八個月又一力作,靠這份Java知識點PDF成功跳槽,
  17. Byte Bull vous apprend à déchiqueter Java à la main, le dernier dictionnaire avancé des programmeurs de grandes usines,
  18. Byte Bull a pris huit mois à travailler dur et a réussi à changer d'emploi avec ce PDF Java Knowledge point.
  19. Byte God Push 1000 pages PDF Learning notes, 2021 Java Development Learning route,
  20. Five minutes to understand MySQL index push down
  21. Spring中@within与@target的一些区别
  22. 力荐:提高千倍效率的一些 Java 代码小技巧
  23. Redis技术专题系列之帮你从底层彻底吃透RDB技术原理(基础篇)
  24. Juan Benet et vitalik buterin discutent des réflexions sur les médias sociaux décentralisés
  25. Ipfs Weekly Report 152 | pinata launched "submarining"
  26. Performance optimization issue 03 - HTTP request optimization
  27. JavaScript genrator generator
  28. 字节跳动Java面试全套真题解析在互联网火了,面试大厂应该注意哪些问题?
  29. 字节跳动Java社招,2021年阿里 腾讯 快手offer都已拿到!
  30. 用Java实现红黑树
  31. 使用Redis Stream来做消息队列和在Asp.Net Core中的实现
  32. 海量列式非关系数据库HBase 架构,shell与API
  33. Redis Technology Topic Series vous aide à comprendre les principes de la technologie rdb du Bas (Basic)
  34. Conseils: quelques conseils pour améliorer l'efficacité du Code Java
  35. Quelques différences entre @ within et @ Target au printemps
  36. 海量列式非關系數據庫HBase 架構,shell與API
  37. Architecture, Shell et API de base de données non relationnelle à grande échelle
  38. Mise en œuvre de l'arbre Rouge et noir en Java
  39. Byte Hopping Java Service Call, 2021 Alibaba Tencent Express offer a été obtenu!
  40. Byte Jump Java interview Full Set of true Problems Analysis in Internet fire, interview Factory should pay attention to what Problems?
  41. La dernière réponse à l'entrevue de développement Android, l'hiver froid de l'industrie
  42. A young Lexus, the new NX refuses to be mediocre and mature
  43. Interprétation approfondie de l'équipe sin7y: application de plookup dans la conception de zkevm
  44. Java basic knowledge point Combing, redis Common Data Structures and Using scenario Analysis,
  45. Five minutes to understand MySQL index push down
  46. Data structure and algorithm (XI) -- algorithm recursion
  47. Programmation asynchrone Java scirp, développement frontal de base
  48. Java basic knowledge point video, three sides ant Gold Clothing successfully obtained offer,
  49. Oracle Linux bascule le noyau uek vers le noyau rhck pour résoudre les problèmes de compatibilité acfs
  50. After the grand finale of spring in jade mansion, after reading many comments, I began to sympathize with white deer
  51. 字节跳动Java高级工程师,统一命名服务、集群管理、分布式应用?
  52. 字节跳动Java高级工程师,深入分布式缓存从原理到实践技术分享,
  53. 字节跳动第三轮技术面,阿里P8架构师Java大厂面试题总结,
  54. 字节跳动社招Java面试,超通俗解析CountDownLatch用法和源码,
  55. 字节跳动最新开源,最经典的HashMap图文详解,
  56. 字節跳動第三輪技術面,阿裏P8架構師Java大廠面試題總結,
  57. Byte Jumping the Third Third Technical surface, Ali P8 Architect Java Factory Interview Question summary,
  58. L'ingénieur Java senior de Byte Hopping approfondit la mise en cache distribuée, du principe au partage de la technologie pratique.
  59. Byte Jump Java Senior Engineer, Unified Naming service, Cluster Management, Distributed application?
  60. Plusieurs méthodes de transfert de fichiers entre Windows et Linux